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
	 Tom Alexander
						Tom Alexander