2023-04-19 13:30:15 -04:00
|
|
|
use super::greater_element::DynamicBlock;
|
2023-04-07 17:14:44 -04:00
|
|
|
use super::greater_element::FootnoteDefinition;
|
2023-04-03 17:36:56 -04:00
|
|
|
use super::greater_element::GreaterBlock;
|
2023-03-23 17:26:07 -04:00
|
|
|
use super::greater_element::PlainList;
|
2023-04-19 16:51:00 -04:00
|
|
|
use super::greater_element::PropertyDrawer;
|
2023-04-19 20:59:58 -04:00
|
|
|
use super::greater_element::Table;
|
2023-04-21 19:02:16 -04:00
|
|
|
use super::lesser_element::Clock;
|
2023-04-15 16:31:38 -04:00
|
|
|
use super::lesser_element::Comment;
|
2023-04-21 17:40:49 -04:00
|
|
|
use super::lesser_element::CommentBlock;
|
|
|
|
use super::lesser_element::ExampleBlock;
|
|
|
|
use super::lesser_element::ExportBlock;
|
2023-03-23 17:26:07 -04:00
|
|
|
use super::lesser_element::Paragraph;
|
2023-04-21 17:40:49 -04:00
|
|
|
use super::lesser_element::SrcBlock;
|
|
|
|
use super::lesser_element::VerseBlock;
|
2023-03-23 17:51:49 -04:00
|
|
|
use super::source::Source;
|
2023-04-15 17:36:07 -04:00
|
|
|
use super::Drawer;
|
2023-03-23 17:26:07 -04:00
|
|
|
|
2023-03-23 17:51:49 -04:00
|
|
|
#[derive(Debug)]
|
2023-03-23 17:26:07 -04:00
|
|
|
pub enum Element<'s> {
|
|
|
|
Paragraph(Paragraph<'s>),
|
|
|
|
PlainList(PlainList<'s>),
|
2023-04-03 17:36:56 -04:00
|
|
|
GreaterBlock(GreaterBlock<'s>),
|
2023-04-19 13:30:15 -04:00
|
|
|
DynamicBlock(DynamicBlock<'s>),
|
2023-04-07 17:14:44 -04:00
|
|
|
FootnoteDefinition(FootnoteDefinition<'s>),
|
2023-04-15 16:31:38 -04:00
|
|
|
Comment(Comment<'s>),
|
2023-04-15 17:36:07 -04:00
|
|
|
Drawer(Drawer<'s>),
|
2023-04-19 16:51:00 -04:00
|
|
|
PropertyDrawer(PropertyDrawer<'s>),
|
2023-04-19 20:59:58 -04:00
|
|
|
Table(Table<'s>),
|
2023-04-21 17:40:49 -04:00
|
|
|
VerseBlock(VerseBlock<'s>),
|
|
|
|
CommentBlock(CommentBlock<'s>),
|
|
|
|
ExampleBlock(ExampleBlock<'s>),
|
|
|
|
ExportBlock(ExportBlock<'s>),
|
|
|
|
SrcBlock(SrcBlock<'s>),
|
2023-04-21 19:02:16 -04:00
|
|
|
Clock(Clock<'s>),
|
2023-03-23 17:26:07 -04:00
|
|
|
}
|
2023-03-23 17:51:49 -04:00
|
|
|
|
|
|
|
impl<'s> Source<'s> for Element<'s> {
|
|
|
|
fn get_source(&'s self) -> &'s str {
|
|
|
|
match self {
|
|
|
|
Element::Paragraph(obj) => obj.source,
|
|
|
|
Element::PlainList(obj) => obj.source,
|
2023-04-03 17:36:56 -04:00
|
|
|
Element::GreaterBlock(obj) => obj.source,
|
2023-04-19 13:30:15 -04:00
|
|
|
Element::DynamicBlock(obj) => obj.source,
|
2023-04-07 17:14:44 -04:00
|
|
|
Element::FootnoteDefinition(obj) => obj.source,
|
2023-04-15 16:31:38 -04:00
|
|
|
Element::Comment(obj) => obj.source,
|
2023-04-15 17:36:07 -04:00
|
|
|
Element::Drawer(obj) => obj.source,
|
2023-04-19 16:51:00 -04:00
|
|
|
Element::PropertyDrawer(obj) => obj.source,
|
2023-04-19 20:59:58 -04:00
|
|
|
Element::Table(obj) => obj.source,
|
2023-04-21 17:40:49 -04:00
|
|
|
Element::VerseBlock(obj) => obj.source,
|
|
|
|
Element::CommentBlock(obj) => obj.source,
|
|
|
|
Element::ExampleBlock(obj) => obj.source,
|
|
|
|
Element::ExportBlock(obj) => obj.source,
|
|
|
|
Element::SrcBlock(obj) => obj.source,
|
2023-04-21 19:02:16 -04:00
|
|
|
Element::Clock(obj) => obj.source,
|
2023-03-23 17:51:49 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|