Populating document's children.
This commit is contained in:
		
							parent
							
								
									995b41e697
								
							
						
					
					
						commit
						67e5829fd9
					
				| @ -60,10 +60,11 @@ use super::verbatim::WasmVerbatim; | ||||
| use super::verse_block::WasmVerseBlock; | ||||
| 
 | ||||
| #[derive(Debug, Serialize)] | ||||
| #[serde(untagged)] | ||||
| pub enum WasmAstNode<'s> { | ||||
|     // Document Nodes
 | ||||
|     Document(WasmDocument<'s>), | ||||
|     Heading(WasmHeadline<'s>), | ||||
|     Headline(WasmHeadline<'s>), | ||||
|     Section(WasmSection<'s>), | ||||
|     // Elements
 | ||||
|     Paragraph(WasmParagraph<'s>), | ||||
|  | ||||
| @ -33,16 +33,34 @@ to_wasm!( | ||||
|             }) | ||||
|             .collect(); | ||||
| 
 | ||||
|         let children = original | ||||
|             .zeroth_section | ||||
|             .iter() | ||||
|             .map(|child| { | ||||
|                 child | ||||
|                     .to_wasm(wasm_context.clone()) | ||||
|                     .map(Into::<WasmAstNode<'_>>::into) | ||||
|             }) | ||||
|             .chain(original.children.iter().map(|child| { | ||||
|                 child | ||||
|                     .to_wasm(wasm_context.clone()) | ||||
|                     .map(Into::<WasmAstNode<'_>>::into) | ||||
|             })) | ||||
|             .collect::<Result<Vec<_>, _>>()?; | ||||
|         // let children = original
 | ||||
|         //     .children
 | ||||
|         //     .iter()
 | ||||
|         //     .map(|child| child.to_wasm(wasm_context.clone()))
 | ||||
|         //     .map(|child| {
 | ||||
|         //         child
 | ||||
|         //             .to_wasm(wasm_context.clone())
 | ||||
|         //             .map(Into::<WasmAstNode<'_>>::into)
 | ||||
|         //     })
 | ||||
|         //     .collect::<Result<Vec<_>, _>>()?;
 | ||||
| 
 | ||||
|         Ok(WasmDocument { | ||||
|             standard_properties, | ||||
|             additional_properties, | ||||
|             children: Vec::new(), | ||||
|             children, | ||||
|         }) | ||||
|     } | ||||
| ); | ||||
|  | ||||
| @ -1,9 +1,9 @@ | ||||
| use std::marker::PhantomData; | ||||
| 
 | ||||
| use organic::types::Heading; | ||||
| use serde::Deserialize; | ||||
| use serde::Serialize; | ||||
| 
 | ||||
| use super::ast_node::WasmAstNode; | ||||
| use super::macros::to_wasm; | ||||
| use super::standard_properties::WasmStandardProperties; | ||||
| use super::to_wasm::ToWasm; | ||||
| @ -11,7 +11,7 @@ use crate::wasm::to_wasm::ToWasmStandardProperties; | ||||
| 
 | ||||
| #[derive(Debug, Serialize)] | ||||
| #[serde(tag = "ast_node")] | ||||
| #[serde(rename = "org-data")] | ||||
| #[serde(rename = "headline")] | ||||
| pub(crate) struct WasmHeadline<'s> { | ||||
|     standard_properties: WasmStandardProperties, | ||||
|     children: Vec<()>, | ||||
| @ -32,3 +32,9 @@ to_wasm!( | ||||
|         }) | ||||
|     } | ||||
| ); | ||||
| 
 | ||||
| impl<'s> Into<WasmAstNode<'s>> for WasmHeadline<'s> { | ||||
|     fn into(self) -> WasmAstNode<'s> { | ||||
|         WasmAstNode::Headline(self) | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -11,7 +11,8 @@ macro_rules! to_wasm { | ||||
|                 $wasm_context: crate::wasm::to_wasm::ToWasmContext<'_>, | ||||
|             ) -> Result<Self::Output, crate::error::CustomError> { | ||||
|                 let $original = self; | ||||
|                 let $standard_properties = self.to_wasm_standard_properties($wasm_context)?; | ||||
|                 let $standard_properties = | ||||
|                     self.to_wasm_standard_properties($wasm_context.clone())?; | ||||
|                 $fnbody | ||||
|             } | ||||
|         } | ||||
|  | ||||
| @ -1,9 +1,9 @@ | ||||
| use std::marker::PhantomData; | ||||
| 
 | ||||
| use organic::types::Section; | ||||
| use serde::Deserialize; | ||||
| use serde::Serialize; | ||||
| 
 | ||||
| use super::ast_node::WasmAstNode; | ||||
| use super::macros::to_wasm; | ||||
| use super::standard_properties::WasmStandardProperties; | ||||
| use super::to_wasm::ToWasm; | ||||
| @ -11,7 +11,7 @@ use crate::wasm::to_wasm::ToWasmStandardProperties; | ||||
| 
 | ||||
| #[derive(Debug, Serialize)] | ||||
| #[serde(tag = "ast_node")] | ||||
| #[serde(rename = "org-data")] | ||||
| #[serde(rename = "section")] | ||||
| pub(crate) struct WasmSection<'s> { | ||||
|     standard_properties: WasmStandardProperties, | ||||
|     children: Vec<()>, | ||||
| @ -32,3 +32,9 @@ to_wasm!( | ||||
|         }) | ||||
|     } | ||||
| ); | ||||
| 
 | ||||
| impl<'s> Into<WasmAstNode<'s>> for WasmSection<'s> { | ||||
|     fn into(self) -> WasmAstNode<'s> { | ||||
|         WasmAstNode::Section(self) | ||||
|     } | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Tom Alexander
						Tom Alexander