61 lines
2.1 KiB
Rust
61 lines
2.1 KiB
Rust
use super::greater_element::DynamicBlock;
|
|
use super::greater_element::FootnoteDefinition;
|
|
use super::greater_element::GreaterBlock;
|
|
use super::greater_element::PlainList;
|
|
use super::greater_element::PropertyDrawer;
|
|
use super::greater_element::Table;
|
|
use super::lesser_element::Clock;
|
|
use super::lesser_element::Comment;
|
|
use super::lesser_element::CommentBlock;
|
|
use super::lesser_element::DiarySexp;
|
|
use super::lesser_element::ExampleBlock;
|
|
use super::lesser_element::ExportBlock;
|
|
use super::lesser_element::Paragraph;
|
|
use super::lesser_element::SrcBlock;
|
|
use super::lesser_element::VerseBlock;
|
|
use super::source::Source;
|
|
use super::Drawer;
|
|
|
|
#[derive(Debug)]
|
|
pub enum Element<'s> {
|
|
Paragraph(Paragraph<'s>),
|
|
PlainList(PlainList<'s>),
|
|
GreaterBlock(GreaterBlock<'s>),
|
|
DynamicBlock(DynamicBlock<'s>),
|
|
FootnoteDefinition(FootnoteDefinition<'s>),
|
|
Comment(Comment<'s>),
|
|
Drawer(Drawer<'s>),
|
|
PropertyDrawer(PropertyDrawer<'s>),
|
|
Table(Table<'s>),
|
|
VerseBlock(VerseBlock<'s>),
|
|
CommentBlock(CommentBlock<'s>),
|
|
ExampleBlock(ExampleBlock<'s>),
|
|
ExportBlock(ExportBlock<'s>),
|
|
SrcBlock(SrcBlock<'s>),
|
|
Clock(Clock<'s>),
|
|
DiarySexp(DiarySexp<'s>),
|
|
}
|
|
|
|
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,
|
|
Element::GreaterBlock(obj) => obj.source,
|
|
Element::DynamicBlock(obj) => obj.source,
|
|
Element::FootnoteDefinition(obj) => obj.source,
|
|
Element::Comment(obj) => obj.source,
|
|
Element::Drawer(obj) => obj.source,
|
|
Element::PropertyDrawer(obj) => obj.source,
|
|
Element::Table(obj) => obj.source,
|
|
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,
|
|
Element::Clock(obj) => obj.source,
|
|
Element::DiarySexp(obj) => obj.source,
|
|
}
|
|
}
|
|
}
|