organic/src/parser/element.rs

73 lines
2.6 KiB
Rust
Raw Normal View History

2023-04-19 13:30:15 -04:00
use super::greater_element::DynamicBlock;
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;
use super::greater_element::PropertyDrawer;
2023-04-19 20:59:58 -04:00
use super::greater_element::Table;
use super::lesser_element::Clock;
use super::lesser_element::Comment;
use super::lesser_element::CommentBlock;
2023-04-21 20:22:31 -04:00
use super::lesser_element::DiarySexp;
use super::lesser_element::ExampleBlock;
use super::lesser_element::ExportBlock;
2023-04-21 22:04:22 -04:00
use super::lesser_element::FixedWidthArea;
2023-04-21 22:23:59 -04:00
use super::lesser_element::HorizontalRule;
2023-04-21 22:33:10 -04:00
use super::lesser_element::Keyword;
2023-03-23 17:26:07 -04:00
use super::lesser_element::Paragraph;
2023-04-21 21:33:23 -04:00
use super::lesser_element::Planning;
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>),
FootnoteDefinition(FootnoteDefinition<'s>),
Comment(Comment<'s>),
2023-04-15 17:36:07 -04:00
Drawer(Drawer<'s>),
PropertyDrawer(PropertyDrawer<'s>),
2023-04-19 20:59:58 -04:00
Table(Table<'s>),
VerseBlock(VerseBlock<'s>),
CommentBlock(CommentBlock<'s>),
ExampleBlock(ExampleBlock<'s>),
ExportBlock(ExportBlock<'s>),
SrcBlock(SrcBlock<'s>),
Clock(Clock<'s>),
2023-04-21 20:22:31 -04:00
DiarySexp(DiarySexp<'s>),
2023-04-21 21:33:23 -04:00
Planning(Planning<'s>),
2023-04-21 22:04:22 -04:00
FixedWidthArea(FixedWidthArea<'s>),
2023-04-21 22:23:59 -04:00
HorizontalRule(HorizontalRule<'s>),
2023-04-21 22:33:10 -04:00
Keyword(Keyword<'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,
Element::FootnoteDefinition(obj) => obj.source,
Element::Comment(obj) => obj.source,
2023-04-15 17:36:07 -04:00
Element::Drawer(obj) => obj.source,
Element::PropertyDrawer(obj) => obj.source,
2023-04-19 20:59:58 -04:00
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,
2023-04-21 20:22:31 -04:00
Element::DiarySexp(obj) => obj.source,
2023-04-21 21:33:23 -04:00
Element::Planning(obj) => obj.source,
2023-04-21 22:04:22 -04:00
Element::FixedWidthArea(obj) => obj.source,
2023-04-21 22:23:59 -04:00
Element::HorizontalRule(obj) => obj.source,
2023-04-21 22:33:10 -04:00
Element::Keyword(obj) => obj.source,
2023-03-23 17:51:49 -04:00
}
}
}