Trait ParseTreeVisitorCompat

Source
pub trait ParseTreeVisitorCompat<'input>: VisitChildren<'input, Self::Node> {
    type Node: ParserNodeType<'input>;
    type Return: Default;

    // Required method
    fn temp_result(&mut self) -> &mut Self::Return;

    // Provided methods
    fn visit(
        &mut self,
        node: &<Self::Node as ParserNodeType<'input>>::Type,
    ) -> Self::Return { ... }
    fn visit_terminal(
        &mut self,
        _node: &TerminalNode<'input, Self::Node>,
    ) -> Self::Return { ... }
    fn visit_error_node(
        &mut self,
        _node: &ErrorNode<'input, Self::Node>,
    ) -> Self::Return { ... }
    fn visit_children(
        &mut self,
        node: &<Self::Node as ParserNodeType<'input>>::Type,
    ) -> Self::Return { ... }
    fn aggregate_results(
        &self,
        aggregate: Self::Return,
        next: Self::Return,
    ) -> Self::Return { ... }
    fn should_visit_next_child(
        &self,
        node: &<Self::Node as ParserNodeType<'input>>::Type,
        current: &Self::Return,
    ) -> bool { ... }
}

Required Associated Types§

Required Methods§

Source

fn temp_result(&mut self) -> &mut Self::Return

Temporary storage for ParseTreeVisitor blanket implementation to work

Provided Methods§

Source

fn visit( &mut self, node: &<Self::Node as ParserNodeType<'input>>::Type, ) -> Self::Return

Source

fn visit_terminal( &mut self, _node: &TerminalNode<'input, Self::Node>, ) -> Self::Return

Called on terminal(leaf) node

Source

fn visit_error_node( &mut self, _node: &ErrorNode<'input, Self::Node>, ) -> Self::Return

Called on error node

Source

fn visit_children( &mut self, node: &<Self::Node as ParserNodeType<'input>>::Type, ) -> Self::Return

Source

fn aggregate_results( &self, aggregate: Self::Return, next: Self::Return, ) -> Self::Return

Source

fn should_visit_next_child( &self, node: &<Self::Node as ParserNodeType<'input>>::Type, current: &Self::Return, ) -> bool

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§