pub trait ExpressionVisitor<'a> {
    type AdditionalInput: Default;
    type Output: Default;

    // Provided methods
    fn visit_expression(
        &mut self,
        input: &'a Expression,
        additional: &Self::AdditionalInput
    ) -> Self::Output { ... }
    fn visit_access(
        &mut self,
        input: &'a AccessExpression,
        additional: &Self::AdditionalInput
    ) -> Self::Output { ... }
    fn visit_binary(
        &mut self,
        input: &'a BinaryExpression,
        additional: &Self::AdditionalInput
    ) -> Self::Output { ... }
    fn visit_call(
        &mut self,
        input: &'a CallExpression,
        additional: &Self::AdditionalInput
    ) -> Self::Output { ... }
    fn visit_struct_init(
        &mut self,
        _input: &'a StructExpression,
        _additional: &Self::AdditionalInput
    ) -> Self::Output { ... }
    fn visit_err(
        &mut self,
        _input: &'a ErrExpression,
        _additional: &Self::AdditionalInput
    ) -> Self::Output { ... }
    fn visit_identifier(
        &mut self,
        _input: &'a Identifier,
        _additional: &Self::AdditionalInput
    ) -> Self::Output { ... }
    fn visit_literal(
        &mut self,
        _input: &'a Literal,
        _additional: &Self::AdditionalInput
    ) -> Self::Output { ... }
    fn visit_ternary(
        &mut self,
        input: &'a TernaryExpression,
        additional: &Self::AdditionalInput
    ) -> Self::Output { ... }
    fn visit_tuple(
        &mut self,
        input: &'a TupleExpression,
        additional: &Self::AdditionalInput
    ) -> Self::Output { ... }
    fn visit_unary(
        &mut self,
        input: &'a UnaryExpression,
        additional: &Self::AdditionalInput
    ) -> Self::Output { ... }
    fn visit_unit(
        &mut self,
        _input: &'a UnitExpression,
        _additional: &Self::AdditionalInput
    ) -> Self::Output { ... }
}
Expand description

A Visitor trait for expressions in the AST.

Required Associated Types§

Provided Methods§

source

fn visit_expression( &mut self, input: &'a Expression, additional: &Self::AdditionalInput ) -> Self::Output

source

fn visit_access( &mut self, input: &'a AccessExpression, additional: &Self::AdditionalInput ) -> Self::Output

source

fn visit_binary( &mut self, input: &'a BinaryExpression, additional: &Self::AdditionalInput ) -> Self::Output

source

fn visit_call( &mut self, input: &'a CallExpression, additional: &Self::AdditionalInput ) -> Self::Output

source

fn visit_struct_init( &mut self, _input: &'a StructExpression, _additional: &Self::AdditionalInput ) -> Self::Output

source

fn visit_err( &mut self, _input: &'a ErrExpression, _additional: &Self::AdditionalInput ) -> Self::Output

source

fn visit_identifier( &mut self, _input: &'a Identifier, _additional: &Self::AdditionalInput ) -> Self::Output

source

fn visit_literal( &mut self, _input: &'a Literal, _additional: &Self::AdditionalInput ) -> Self::Output

source

fn visit_ternary( &mut self, input: &'a TernaryExpression, additional: &Self::AdditionalInput ) -> Self::Output

source

fn visit_tuple( &mut self, input: &'a TupleExpression, additional: &Self::AdditionalInput ) -> Self::Output

source

fn visit_unary( &mut self, input: &'a UnaryExpression, additional: &Self::AdditionalInput ) -> Self::Output

source

fn visit_unit( &mut self, _input: &'a UnitExpression, _additional: &Self::AdditionalInput ) -> Self::Output

Implementors§