use super::macros::intermediate; use super::IDocumentElement; use super::IObject; use crate::error::CustomError; #[derive(Debug, Clone)] pub(crate) struct IHeading { pub(crate) level: organic::types::HeadlineLevel, pub(crate) title: Vec, pub(crate) children: Vec, } intermediate!( IHeading, &'orig organic::types::Heading<'parse>, original, intermediate_context, { let title = { let mut ret = Vec::new(); for obj in original.title.iter() { ret.push(IObject::new(intermediate_context.clone(), obj).await?); } ret }; let children = { let mut ret = Vec::new(); for obj in original.children.iter() { ret.push(IDocumentElement::new(intermediate_context.clone(), obj).await?); } ret }; Ok(IHeading { title, level: original.level, children, }) } );