use super::macros::iitem; use super::macros::iselector; use super::registry::Registry; use super::IHeading; use super::ISection; use crate::error::CustomError; use futures::future::{BoxFuture, FutureExt}; #[derive(Debug, Clone)] pub(crate) enum IDocumentElement { Heading(IHeading), Section(ISection), } iselector!(IDocumentElement, DocumentElement, original, registry, { iitem!( registry, original, ( organic::types::DocumentElement::Heading, IDocumentElement::Heading, IHeading ), ( organic::types::DocumentElement::Section, IDocumentElement::Section, ISection ), ) });