Implement a macro for iterators with multiple fields.
This commit is contained in:
@@ -3,6 +3,7 @@ use std::marker::PhantomData;
|
||||
use super::ast_node::AstNode;
|
||||
use super::macros::children_iter;
|
||||
use super::macros::empty_iter;
|
||||
use super::macros::multi_field_iter;
|
||||
use crate::types::Bold;
|
||||
use crate::types::Code;
|
||||
use crate::types::Document;
|
||||
@@ -35,6 +36,7 @@ pub enum AstNodeIter<'r, 's> {
|
||||
// Elements
|
||||
Paragraph(ParagraphIter<'r, 's>),
|
||||
PlainList(PlainListIter<'r, 's>),
|
||||
PlainListItem(PlainListItemIter<'r, 's>),
|
||||
// GreaterBlock(GreaterBlockIter<'r, 's>),
|
||||
// DynamicBlock(DynamicBlockIter<'r, 's>),
|
||||
// FootnoteDefinition(FootnoteDefinitionIter<'r, 's>),
|
||||
@@ -154,6 +156,15 @@ children_iter!(
|
||||
PlainListIter,
|
||||
std::slice::Iter<'r, PlainListItem<'s>>
|
||||
);
|
||||
|
||||
multi_field_iter!(
|
||||
PlainListItem<'s>,
|
||||
PlainListItemIter,
|
||||
tag,
|
||||
std::slice::Iter<'r, Object<'s>>,
|
||||
children,
|
||||
std::slice::Iter<'r, Element<'s>>
|
||||
);
|
||||
children_iter!(Bold<'s>, BoldIter, std::slice::Iter<'r, Object<'s>>);
|
||||
children_iter!(Italic<'s>, ItalicIter, std::slice::Iter<'r, Object<'s>>);
|
||||
children_iter!(
|
||||
|
||||
Reference in New Issue
Block a user