struct NestLimiter<'p, 's, P> {
p: &'p ParserI<'s, P>,
depth: u32,
}Expand description
A type that traverses a fully parsed Ast and checks whether its depth exceeds the specified nesting limit. If it does, then an error is returned.
Fields§
§p: &'p ParserI<'s, P>The parser that is checking the nest limit.
depth: u32The current depth while walking an Ast.
Implementations§
Trait Implementations§
Source§impl<'p, 's, P: Debug> Debug for NestLimiter<'p, 's, P>
impl<'p, 's, P: Debug> Debug for NestLimiter<'p, 's, P>
Source§impl<'p, 's, P: Borrow<Parser>> Visitor for NestLimiter<'p, 's, P>
impl<'p, 's, P: Borrow<Parser>> Visitor for NestLimiter<'p, 's, P>
Source§fn finish(self) -> Result<(), Error>
fn finish(self) -> Result<(), Error>
All implementors of
Visitor must provide a finish method, which
yields the result of visiting the AST or an error.Source§fn visit_pre(&mut self, ast: &Ast) -> Result<(), Error>
fn visit_pre(&mut self, ast: &Ast) -> Result<(), Error>
This method is called on an
Ast before descending into child Ast
nodes.Source§fn visit_post(&mut self, ast: &Ast) -> Result<(), Error>
fn visit_post(&mut self, ast: &Ast) -> Result<(), Error>
This method is called on an
Ast after descending all of its child
Ast nodes.Source§fn visit_class_set_item_pre(&mut self, ast: &ClassSetItem) -> Result<(), Error>
fn visit_class_set_item_pre(&mut self, ast: &ClassSetItem) -> Result<(), Error>
This method is called on every
ClassSetItem
before descending into child nodes.Source§fn visit_class_set_item_post(&mut self, ast: &ClassSetItem) -> Result<(), Error>
fn visit_class_set_item_post(&mut self, ast: &ClassSetItem) -> Result<(), Error>
This method is called on every
ClassSetItem
after descending into child nodes.Source§fn visit_class_set_binary_op_pre(
&mut self,
ast: &ClassSetBinaryOp,
) -> Result<(), Error>
fn visit_class_set_binary_op_pre( &mut self, ast: &ClassSetBinaryOp, ) -> Result<(), Error>
This method is called on every
ClassSetBinaryOp before descending into
child nodes.Source§fn visit_class_set_binary_op_post(
&mut self,
_ast: &ClassSetBinaryOp,
) -> Result<(), Error>
fn visit_class_set_binary_op_post( &mut self, _ast: &ClassSetBinaryOp, ) -> Result<(), Error>
This method is called on every
ClassSetBinaryOp after descending into child
nodes.Source§fn visit_alternation_in(&mut self) -> Result<(), Self::Err>
fn visit_alternation_in(&mut self) -> Result<(), Self::Err>
This method is called between child nodes of an
Alternation.Source§fn visit_concat_in(&mut self) -> Result<(), Self::Err>
fn visit_concat_in(&mut self) -> Result<(), Self::Err>
This method is called between child nodes of a concatenation.
Source§fn visit_class_set_binary_op_in(
&mut self,
_ast: &ClassSetBinaryOp,
) -> Result<(), Self::Err>
fn visit_class_set_binary_op_in( &mut self, _ast: &ClassSetBinaryOp, ) -> Result<(), Self::Err>
This method is called between the left hand and right hand child nodes
of a
ClassSetBinaryOp.Auto Trait Implementations§
impl<'p, 's, P> Freeze for NestLimiter<'p, 's, P>
impl<'p, 's, P> RefUnwindSafe for NestLimiter<'p, 's, P>where
P: RefUnwindSafe,
impl<'p, 's, P> Send for NestLimiter<'p, 's, P>where
P: Sync,
impl<'p, 's, P> Sync for NestLimiter<'p, 's, P>where
P: Sync,
impl<'p, 's, P> Unpin for NestLimiter<'p, 's, P>
impl<'p, 's, P> UnwindSafe for NestLimiter<'p, 's, P>where
P: RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more