Implement all ast node iteration.
This commit is contained in:
@@ -131,6 +131,71 @@ pub enum AstNodeIter<'r, 's> {
|
||||
Timestamp(TimestampIter<'r, 's>),
|
||||
}
|
||||
|
||||
impl<'r, 's> AstNodeIter<'r, 's> {
|
||||
pub fn from_ast_node(node: &AstNode<'r, 's>) -> AstNodeIter<'r, 's> {
|
||||
match node {
|
||||
AstNode::Document(inner) => AstNodeIter::Document(inner.into_iter()),
|
||||
AstNode::Heading(inner) => AstNodeIter::Heading(inner.into_iter()),
|
||||
AstNode::Section(inner) => AstNodeIter::Section(inner.into_iter()),
|
||||
AstNode::Paragraph(inner) => AstNodeIter::Paragraph(inner.into_iter()),
|
||||
AstNode::PlainList(inner) => AstNodeIter::PlainList(inner.into_iter()),
|
||||
AstNode::PlainListItem(inner) => AstNodeIter::PlainListItem(inner.into_iter()),
|
||||
AstNode::GreaterBlock(inner) => AstNodeIter::GreaterBlock(inner.into_iter()),
|
||||
AstNode::DynamicBlock(inner) => AstNodeIter::DynamicBlock(inner.into_iter()),
|
||||
AstNode::FootnoteDefinition(inner) => {
|
||||
AstNodeIter::FootnoteDefinition(inner.into_iter())
|
||||
}
|
||||
AstNode::Comment(inner) => AstNodeIter::Comment(inner.into_iter()),
|
||||
AstNode::Drawer(inner) => AstNodeIter::Drawer(inner.into_iter()),
|
||||
AstNode::PropertyDrawer(inner) => AstNodeIter::PropertyDrawer(inner.into_iter()),
|
||||
AstNode::NodeProperty(inner) => AstNodeIter::NodeProperty(inner.into_iter()),
|
||||
AstNode::Table(inner) => AstNodeIter::Table(inner.into_iter()),
|
||||
AstNode::TableRow(inner) => AstNodeIter::TableRow(inner.into_iter()),
|
||||
AstNode::VerseBlock(inner) => AstNodeIter::VerseBlock(inner.into_iter()),
|
||||
AstNode::CommentBlock(inner) => AstNodeIter::CommentBlock(inner.into_iter()),
|
||||
AstNode::ExampleBlock(inner) => AstNodeIter::ExampleBlock(inner.into_iter()),
|
||||
AstNode::ExportBlock(inner) => AstNodeIter::ExportBlock(inner.into_iter()),
|
||||
AstNode::SrcBlock(inner) => AstNodeIter::SrcBlock(inner.into_iter()),
|
||||
AstNode::Clock(inner) => AstNodeIter::Clock(inner.into_iter()),
|
||||
AstNode::DiarySexp(inner) => AstNodeIter::DiarySexp(inner.into_iter()),
|
||||
AstNode::Planning(inner) => AstNodeIter::Planning(inner.into_iter()),
|
||||
AstNode::FixedWidthArea(inner) => AstNodeIter::FixedWidthArea(inner.into_iter()),
|
||||
AstNode::HorizontalRule(inner) => AstNodeIter::HorizontalRule(inner.into_iter()),
|
||||
AstNode::Keyword(inner) => AstNodeIter::Keyword(inner.into_iter()),
|
||||
AstNode::BabelCall(inner) => AstNodeIter::BabelCall(inner.into_iter()),
|
||||
AstNode::LatexEnvironment(inner) => AstNodeIter::LatexEnvironment(inner.into_iter()),
|
||||
AstNode::Bold(inner) => AstNodeIter::Bold(inner.into_iter()),
|
||||
AstNode::Italic(inner) => AstNodeIter::Italic(inner.into_iter()),
|
||||
AstNode::Underline(inner) => AstNodeIter::Underline(inner.into_iter()),
|
||||
AstNode::StrikeThrough(inner) => AstNodeIter::StrikeThrough(inner.into_iter()),
|
||||
AstNode::Code(inner) => AstNodeIter::Code(inner.into_iter()),
|
||||
AstNode::Verbatim(inner) => AstNodeIter::Verbatim(inner.into_iter()),
|
||||
AstNode::PlainText(inner) => AstNodeIter::PlainText(inner.into_iter()),
|
||||
AstNode::RegularLink(inner) => AstNodeIter::RegularLink(inner.into_iter()),
|
||||
AstNode::RadioLink(inner) => AstNodeIter::RadioLink(inner.into_iter()),
|
||||
AstNode::RadioTarget(inner) => AstNodeIter::RadioTarget(inner.into_iter()),
|
||||
AstNode::PlainLink(inner) => AstNodeIter::PlainLink(inner.into_iter()),
|
||||
AstNode::AngleLink(inner) => AstNodeIter::AngleLink(inner.into_iter()),
|
||||
AstNode::OrgMacro(inner) => AstNodeIter::OrgMacro(inner.into_iter()),
|
||||
AstNode::Entity(inner) => AstNodeIter::Entity(inner.into_iter()),
|
||||
AstNode::LatexFragment(inner) => AstNodeIter::LatexFragment(inner.into_iter()),
|
||||
AstNode::ExportSnippet(inner) => AstNodeIter::ExportSnippet(inner.into_iter()),
|
||||
AstNode::FootnoteReference(inner) => AstNodeIter::FootnoteReference(inner.into_iter()),
|
||||
AstNode::Citation(inner) => AstNodeIter::Citation(inner.into_iter()),
|
||||
AstNode::CitationReference(inner) => AstNodeIter::CitationReference(inner.into_iter()),
|
||||
AstNode::InlineBabelCall(inner) => AstNodeIter::InlineBabelCall(inner.into_iter()),
|
||||
AstNode::InlineSourceBlock(inner) => AstNodeIter::InlineSourceBlock(inner.into_iter()),
|
||||
AstNode::LineBreak(inner) => AstNodeIter::LineBreak(inner.into_iter()),
|
||||
AstNode::Target(inner) => AstNodeIter::Target(inner.into_iter()),
|
||||
AstNode::StatisticsCookie(inner) => AstNodeIter::StatisticsCookie(inner.into_iter()),
|
||||
AstNode::Subscript(inner) => AstNodeIter::Subscript(inner.into_iter()),
|
||||
AstNode::Superscript(inner) => AstNodeIter::Superscript(inner.into_iter()),
|
||||
AstNode::TableCell(inner) => AstNodeIter::TableCell(inner.into_iter()),
|
||||
AstNode::Timestamp(inner) => AstNodeIter::Timestamp(inner.into_iter()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
multi_field_iter!(
|
||||
Document<'s>,
|
||||
DocumentIter,
|
||||
|
||||
Reference in New Issue
Block a user