Introduce AstNode and AstNodeIter enums.
This commit is contained in:
parent
35f058a354
commit
9111408d83
@ -1 +1,110 @@
|
|||||||
|
use crate::types::AngleLink;
|
||||||
|
use crate::types::BabelCall;
|
||||||
|
use crate::types::Bold;
|
||||||
|
use crate::types::Citation;
|
||||||
|
use crate::types::CitationReference;
|
||||||
|
use crate::types::Clock;
|
||||||
|
use crate::types::Code;
|
||||||
|
use crate::types::Comment;
|
||||||
|
use crate::types::CommentBlock;
|
||||||
|
use crate::types::DiarySexp;
|
||||||
|
use crate::types::Document;
|
||||||
|
use crate::types::Drawer;
|
||||||
|
use crate::types::DynamicBlock;
|
||||||
|
use crate::types::Entity;
|
||||||
|
use crate::types::ExampleBlock;
|
||||||
|
use crate::types::ExportBlock;
|
||||||
|
use crate::types::ExportSnippet;
|
||||||
|
use crate::types::FixedWidthArea;
|
||||||
|
use crate::types::FootnoteDefinition;
|
||||||
|
use crate::types::FootnoteReference;
|
||||||
|
use crate::types::GreaterBlock;
|
||||||
|
use crate::types::Heading;
|
||||||
|
use crate::types::HorizontalRule;
|
||||||
|
use crate::types::InlineBabelCall;
|
||||||
|
use crate::types::InlineSourceBlock;
|
||||||
|
use crate::types::Italic;
|
||||||
|
use crate::types::Keyword;
|
||||||
|
use crate::types::LatexEnvironment;
|
||||||
|
use crate::types::LatexFragment;
|
||||||
|
use crate::types::LineBreak;
|
||||||
|
use crate::types::OrgMacro;
|
||||||
|
use crate::types::Paragraph;
|
||||||
|
use crate::types::PlainLink;
|
||||||
|
use crate::types::PlainList;
|
||||||
|
use crate::types::PlainText;
|
||||||
|
use crate::types::Planning;
|
||||||
|
use crate::types::PropertyDrawer;
|
||||||
|
use crate::types::RadioLink;
|
||||||
|
use crate::types::RadioTarget;
|
||||||
|
use crate::types::RegularLink;
|
||||||
|
use crate::types::Section;
|
||||||
|
use crate::types::SrcBlock;
|
||||||
|
use crate::types::StatisticsCookie;
|
||||||
|
use crate::types::StrikeThrough;
|
||||||
|
use crate::types::Subscript;
|
||||||
|
use crate::types::Superscript;
|
||||||
|
use crate::types::Table;
|
||||||
|
use crate::types::Target;
|
||||||
|
use crate::types::Timestamp;
|
||||||
|
use crate::types::Underline;
|
||||||
|
use crate::types::Verbatim;
|
||||||
|
use crate::types::VerseBlock;
|
||||||
|
|
||||||
|
pub enum AstNode<'r, 's> {
|
||||||
|
// Document Nodes
|
||||||
|
Document(&'r Document<'s>),
|
||||||
|
Heading(&'r Heading<'s>),
|
||||||
|
Section(&'r Section<'s>),
|
||||||
|
// Elements
|
||||||
|
Paragraph(&'r Paragraph<'s>),
|
||||||
|
PlainList(&'r PlainList<'s>),
|
||||||
|
GreaterBlock(&'r GreaterBlock<'s>),
|
||||||
|
DynamicBlock(&'r DynamicBlock<'s>),
|
||||||
|
FootnoteDefinition(&'r FootnoteDefinition<'s>),
|
||||||
|
Comment(&'r Comment<'s>),
|
||||||
|
Drawer(&'r Drawer<'s>),
|
||||||
|
PropertyDrawer(&'r PropertyDrawer<'s>),
|
||||||
|
Table(&'r Table<'s>),
|
||||||
|
VerseBlock(&'r VerseBlock<'s>),
|
||||||
|
CommentBlock(&'r CommentBlock<'s>),
|
||||||
|
ExampleBlock(&'r ExampleBlock<'s>),
|
||||||
|
ExportBlock(&'r ExportBlock<'s>),
|
||||||
|
SrcBlock(&'r SrcBlock<'s>),
|
||||||
|
Clock(&'r Clock<'s>),
|
||||||
|
DiarySexp(&'r DiarySexp<'s>),
|
||||||
|
Planning(&'r Planning<'s>),
|
||||||
|
FixedWidthArea(&'r FixedWidthArea<'s>),
|
||||||
|
HorizontalRule(&'r HorizontalRule<'s>),
|
||||||
|
Keyword(&'r Keyword<'s>),
|
||||||
|
BabelCall(&'r BabelCall<'s>),
|
||||||
|
LatexEnvironment(&'r LatexEnvironment<'s>),
|
||||||
|
// Objects
|
||||||
|
Bold(&'r Bold<'s>),
|
||||||
|
Italic(&'r Italic<'s>),
|
||||||
|
Underline(&'r Underline<'s>),
|
||||||
|
StrikeThrough(&'r StrikeThrough<'s>),
|
||||||
|
Code(&'r Code<'s>),
|
||||||
|
Verbatim(&'r Verbatim<'s>),
|
||||||
|
PlainText(&'r PlainText<'s>),
|
||||||
|
RegularLink(&'r RegularLink<'s>),
|
||||||
|
RadioLink(&'r RadioLink<'s>),
|
||||||
|
RadioTarget(&'r RadioTarget<'s>),
|
||||||
|
PlainLink(&'r PlainLink<'s>),
|
||||||
|
AngleLink(&'r AngleLink<'s>),
|
||||||
|
OrgMacro(&'r OrgMacro<'s>),
|
||||||
|
Entity(&'r Entity<'s>),
|
||||||
|
LatexFragment(&'r LatexFragment<'s>),
|
||||||
|
ExportSnippet(&'r ExportSnippet<'s>),
|
||||||
|
FootnoteReference(&'r FootnoteReference<'s>),
|
||||||
|
Citation(&'r Citation<'s>),
|
||||||
|
CitationReference(&'r CitationReference<'s>),
|
||||||
|
InlineBabelCall(&'r InlineBabelCall<'s>),
|
||||||
|
InlineSourceBlock(&'r InlineSourceBlock<'s>),
|
||||||
|
LineBreak(&'r LineBreak<'s>),
|
||||||
|
Target(&'r Target<'s>),
|
||||||
|
StatisticsCookie(&'r StatisticsCookie<'s>),
|
||||||
|
Subscript(&'r Subscript<'s>),
|
||||||
|
Superscript(&'r Superscript<'s>),
|
||||||
|
Timestamp(&'r Timestamp<'s>),
|
||||||
|
}
|
||||||
|
@ -1,5 +1,63 @@
|
|||||||
use crate::types::Object;
|
use crate::types::Object;
|
||||||
|
|
||||||
|
pub enum AstNodeIter<'s> {
|
||||||
|
// Document Nodes
|
||||||
|
// Document(DocumentIter<'s>),
|
||||||
|
// Heading(HeadingIter<'s>),
|
||||||
|
// Section(SectionIter<'s>),
|
||||||
|
// Elements
|
||||||
|
// Paragraph(ParagraphIter<'s>),
|
||||||
|
// PlainList(PlainListIter<'s>),
|
||||||
|
// GreaterBlock(GreaterBlockIter<'s>),
|
||||||
|
// DynamicBlock(DynamicBlockIter<'s>),
|
||||||
|
// FootnoteDefinition(FootnoteDefinitionIter<'s>),
|
||||||
|
// Comment(CommentIter<'s>),
|
||||||
|
// Drawer(DrawerIter<'s>),
|
||||||
|
// PropertyDrawer(PropertyDrawerIter<'s>),
|
||||||
|
// Table(TableIter<'s>),
|
||||||
|
// VerseBlock(VerseBlockIter<'s>),
|
||||||
|
// CommentBlock(CommentBlockIter<'s>),
|
||||||
|
// ExampleBlock(ExampleBlockIter<'s>),
|
||||||
|
// ExportBlock(ExportBlockIter<'s>),
|
||||||
|
// SrcBlock(SrcBlockIter<'s>),
|
||||||
|
// Clock(ClockIter<'s>),
|
||||||
|
// DiarySexp(DiarySexpIter<'s>),
|
||||||
|
// Planning(PlanningIter<'s>),
|
||||||
|
// FixedWidthArea(FixedWidthAreaIter<'s>),
|
||||||
|
// HorizontalRule(HorizontalRuleIter<'s>),
|
||||||
|
// Keyword(KeywordIter<'s>),
|
||||||
|
// BabelCall(BabelCallIter<'s>),
|
||||||
|
// LatexEnvironment(LatexEnvironmentIter<'s>),
|
||||||
|
// Objects
|
||||||
|
Bold(BoldIter<'s>),
|
||||||
|
// Italic(ItalicIter<'s>),
|
||||||
|
// Underline(UnderlineIter<'s>),
|
||||||
|
// StrikeThrough(StrikeThroughIter<'s>),
|
||||||
|
// Code(CodeIter<'s>),
|
||||||
|
// Verbatim(VerbatimIter<'s>),
|
||||||
|
// PlainText(PlainTextIter<'s>),
|
||||||
|
// RegularLink(RegularLinkIter<'s>),
|
||||||
|
// RadioLink(RadioLinkIter<'s>),
|
||||||
|
// RadioTarget(RadioTargetIter<'s>),
|
||||||
|
// PlainLink(PlainLinkIter<'s>),
|
||||||
|
// AngleLink(AngleLinkIter<'s>),
|
||||||
|
// OrgMacro(OrgMacroIter<'s>),
|
||||||
|
// Entity(EntityIter<'s>),
|
||||||
|
// LatexFragment(LatexFragmentIter<'s>),
|
||||||
|
// ExportSnippet(ExportSnippetIter<'s>),
|
||||||
|
// FootnoteReference(FootnoteReferenceIter<'s>),
|
||||||
|
// Citation(CitationIter<'s>),
|
||||||
|
// CitationReference(CitationReferenceIter<'s>),
|
||||||
|
// InlineBabelCall(InlineBabelCallIter<'s>),
|
||||||
|
// InlineSourceBlock(InlineSourceBlockIter<'s>),
|
||||||
|
// LineBreak(LineBreakIter<'s>),
|
||||||
|
// Target(TargetIter<'s>),
|
||||||
|
// StatisticsCookie(StatisticsCookieIter<'s>),
|
||||||
|
// Subscript(SubscriptIter<'s>),
|
||||||
|
// Superscript(SuperscriptIter<'s>),
|
||||||
|
// Timestamp(TimestampIter<'s>),
|
||||||
|
}
|
||||||
|
|
||||||
pub struct BoldIter<'s> {
|
pub struct BoldIter<'s> {
|
||||||
next: std::slice::Iter<'s, Object<'s>>,
|
next: std::slice::Iter<'s, Object<'s>>,
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user