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…
Reference in New Issue
Block a user