natter/src/intermediate/document_element.rs

28 lines
749 B
Rust
Raw Normal View History

use super::macros::iselector;
2023-10-27 22:59:40 +00:00
use super::registry::Registry;
use super::IHeading;
use super::ISection;
use crate::error::CustomError;
2023-10-27 22:59:40 +00:00
use futures::future::{BoxFuture, FutureExt};
2023-10-29 19:36:15 +00:00
#[derive(Debug, Clone)]
pub(crate) enum IDocumentElement {
Heading(IHeading),
Section(ISection),
}
2023-10-27 22:59:40 +00:00
iselector!(
IDocumentElement,
DocumentElement,
|registry, original| async {
match &original {
organic::types::DocumentElement::Heading(inner) => Ok(IDocumentElement::Heading(
IHeading::new(registry, inner).await?,
)),
organic::types::DocumentElement::Section(inner) => Ok(IDocumentElement::Section(
ISection::new(registry, inner).await?,
)),
2023-10-27 22:59:40 +00:00
}
}
);