use crate::error::CustomError; use super::registry::Registry; use super::IDocumentElement; use super::IObject; #[derive(Debug)] pub(crate) struct IHeading { pub(crate) level: organic::types::HeadlineLevel, pub(crate) title: Vec, pub(crate) children: Vec, } impl IHeading { pub(crate) async fn new<'intermediate, 'parse>( registry: &mut Registry<'intermediate, 'parse>, original: &'intermediate organic::types::Heading<'parse>, ) -> Result { let title = { let mut ret = Vec::new(); for obj in original.title.iter() { ret.push(IObject::new(registry, obj).await?); } ret }; let children = { let mut ret = Vec::new(); for obj in original.children.iter() { ret.push(IDocumentElement::new(registry, obj).await?); } ret }; Ok(IHeading { title, level: original.level, children, }) } }