Enable child checking.
This commit is contained in:
parent
423f65046e
commit
58290515b5
@ -64,6 +64,8 @@ mod verse_block;
|
||||
|
||||
pub use ast_node::WasmAstNode;
|
||||
pub use document::WasmDocument;
|
||||
pub(crate) use headline::WasmHeadline;
|
||||
pub use parse_result::ParseResult;
|
||||
pub(crate) use section::WasmSection;
|
||||
pub use to_wasm::ToWasm;
|
||||
pub use to_wasm::ToWasmContext;
|
||||
|
@ -7,6 +7,8 @@ use crate::compare::EmacsField;
|
||||
use crate::compare::Token;
|
||||
use crate::wasm::WasmAstNode;
|
||||
use crate::wasm::WasmDocument;
|
||||
use crate::wasm::WasmHeadline;
|
||||
use crate::wasm::WasmSection;
|
||||
use crate::wasm_test::macros::wasm_compare;
|
||||
|
||||
pub fn wasm_compare_document<'b, 's, 'p>(
|
||||
@ -172,8 +174,8 @@ impl<'s, 'p> WasmElispCompare<'s, 'p> for WasmAstNode<'s, 'p> {
|
||||
) -> Result<WasmDiffResult<'s>, Box<dyn std::error::Error>> {
|
||||
match self {
|
||||
WasmAstNode::Document(inner) => inner.compare_ast_node(source, emacs),
|
||||
WasmAstNode::Headline(_) => todo!(),
|
||||
WasmAstNode::Section(_) => todo!(),
|
||||
WasmAstNode::Headline(inner) => inner.compare_ast_node(source, emacs),
|
||||
WasmAstNode::Section(inner) => inner.compare_ast_node(source, emacs),
|
||||
WasmAstNode::Paragraph(_) => todo!(),
|
||||
WasmAstNode::PlainList(_) => todo!(),
|
||||
WasmAstNode::PlainListItem(_) => todo!(),
|
||||
@ -258,6 +260,60 @@ impl<'s, 'p> WasmElispCompare<'s, 'p> for WasmDocument<'s, 'p> {
|
||||
}
|
||||
}
|
||||
|
||||
impl<'s, 'p> WasmElispCompare<'s, 'p> for WasmHeadline<'s, 'p> {
|
||||
fn compare_ast_node<'b>(
|
||||
&self,
|
||||
source: &'s str,
|
||||
emacs: &'b Token<'s>,
|
||||
) -> Result<WasmDiffResult<'s>, Box<dyn std::error::Error>> {
|
||||
let result = WasmDiffResult::default();
|
||||
// let result = wasm_compare!(
|
||||
// source,
|
||||
// emacs,
|
||||
// self,
|
||||
// (
|
||||
// EmacsField::Required(":path"),
|
||||
// |w| w.path.as_ref().and_then(|p| p.to_str()),
|
||||
// wasm_compare_property_quoted_string
|
||||
// ),
|
||||
// (
|
||||
// EmacsField::Required(":CATEGORY"),
|
||||
// |w| w.category.as_ref(),
|
||||
// wasm_compare_property_quoted_string
|
||||
// )
|
||||
// );
|
||||
|
||||
Ok(result)
|
||||
}
|
||||
}
|
||||
|
||||
impl<'s, 'p> WasmElispCompare<'s, 'p> for WasmSection<'s, 'p> {
|
||||
fn compare_ast_node<'b>(
|
||||
&self,
|
||||
source: &'s str,
|
||||
emacs: &'b Token<'s>,
|
||||
) -> Result<WasmDiffResult<'s>, Box<dyn std::error::Error>> {
|
||||
let result = WasmDiffResult::default();
|
||||
// let result = wasm_compare!(
|
||||
// source,
|
||||
// emacs,
|
||||
// self,
|
||||
// (
|
||||
// EmacsField::Required(":path"),
|
||||
// |w| w.path.as_ref().and_then(|p| p.to_str()),
|
||||
// wasm_compare_property_quoted_string
|
||||
// ),
|
||||
// (
|
||||
// EmacsField::Required(":CATEGORY"),
|
||||
// |w| w.category.as_ref(),
|
||||
// wasm_compare_property_quoted_string
|
||||
// )
|
||||
// );
|
||||
|
||||
Ok(result)
|
||||
}
|
||||
}
|
||||
|
||||
fn wasm_compare_property_quoted_string<
|
||||
'b,
|
||||
's,
|
||||
|
@ -41,11 +41,11 @@ macro_rules! wasm_compare {
|
||||
|
||||
{
|
||||
// Compare children.
|
||||
// result.extend(wasm_compare_list(
|
||||
// $source,
|
||||
// emacs_list_iter,
|
||||
// $wasm.children.iter(),
|
||||
// )?)?;
|
||||
result.extend(wasm_compare_list(
|
||||
$source,
|
||||
emacs_list_iter,
|
||||
$wasm.children.iter(),
|
||||
)?)?;
|
||||
}
|
||||
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user