Skip to main content

ExpressionVisitable

Trait ExpressionVisitable 

Source
pub trait ExpressionVisitable<Expr> {
    // Required methods
    fn visit_expressions<F, B>(
        &self,
        f: &mut F,
        order: VisitOrder,
    ) -> ControlFlow<B>
       where F: FnMut(&Expr) -> ControlFlow<B>;
    fn visit_expressions_mut<F, B>(
        &mut self,
        f: &mut F,
        order: VisitOrder,
    ) -> ControlFlow<B>
       where F: FnMut(&mut Expr) -> ControlFlow<B>;

    // Provided methods
    fn pre_visit_expressions_mut<F>(&mut self, f: &mut F)
       where F: FnMut(&mut Expr) { ... }
    fn post_visit_expressions_mut<F>(&mut self, f: &mut F)
       where F: FnMut(&mut Expr) { ... }
}
Expand description

A trait to be implemented by an AST node.

The idea is that it calls a callback function on each of the sub-nodes that are expressions. The difference to the Children trait is that ExpressionVisitable visits recursively. If a node implements Children, it also implements ExpressionVisitable.

Required Methods§

Source

fn visit_expressions<F, B>( &self, f: &mut F, order: VisitOrder, ) -> ControlFlow<B>
where F: FnMut(&Expr) -> ControlFlow<B>,

Source

fn visit_expressions_mut<F, B>( &mut self, f: &mut F, order: VisitOrder, ) -> ControlFlow<B>
where F: FnMut(&mut Expr) -> ControlFlow<B>,

Provided Methods§

Source

fn pre_visit_expressions_mut<F>(&mut self, f: &mut F)
where F: FnMut(&mut Expr),

Traverses the AST and calls f on each Expression in pre-order.

Source

fn post_visit_expressions_mut<F>(&mut self, f: &mut F)
where F: FnMut(&mut Expr),

Traverses the AST and calls f on each Expression in post-order.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§