use super::macros::intermediate;

use super::IElement;
use crate::error::CustomError;

#[derive(Debug, Clone)]
pub(crate) struct IQuoteBlock {
    pub(crate) children: Vec<IElement>,
}

intermediate!(
    IQuoteBlock,
    &'orig organic::types::QuoteBlock<'parse>,
    original,
    registry,
    {
        let children = {
            let mut ret = Vec::new();
            for obj in original.children.iter() {
                ret.push(IElement::new(registry.clone(), obj).await?);
            }
            ret
        };

        Ok(IQuoteBlock { children })
    }
);