Skip to main content

StructuralVisitor

Trait StructuralVisitor 

Source
pub trait StructuralVisitor: Sized {
    // Required method
    fn visit(
        &mut self,
        value: &VisitValue,
        def_region_kind: DefRegionKind,
    ) -> Result<Option<VisitInterrupt>>;

    // Provided methods
    fn visit_child<T>(
        &mut self,
        child: &T,
        def_region_kind: DefRegionKind,
    ) -> Result<Option<VisitInterrupt>>
       where for<'x> AnyView<'x>: From<&'x T> { ... }
    fn default_visit_children(
        &mut self,
        value: &VisitValue,
        def_region_kind: DefRegionKind,
    ) -> Result<Option<VisitInterrupt>> { ... }
}
Expand description

A visitor that controls its own recursion.

Implementations descend with Self::visit_child or Self::default_visit_children. #[dispatch(visit)] generates this trait from typed visit_* methods.

Required Methods§

Source

fn visit( &mut self, value: &VisitValue, def_region_kind: DefRegionKind, ) -> Result<Option<VisitInterrupt>>

Visit one value under the definition-region state active at it.

Provided Methods§

Source

fn visit_child<T>( &mut self, child: &T, def_region_kind: DefRegionKind, ) -> Result<Option<VisitInterrupt>>
where for<'x> AnyView<'x>: From<&'x T>,

Visit child under def_region_kind.

Source

fn default_visit_children( &mut self, value: &VisitValue, def_region_kind: DefRegionKind, ) -> Result<Option<VisitInterrupt>>

Visit value’s children with the default structural rules.

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§

Source§

impl<State, Link, Marker> StructuralVisitor for VisitCallbacks<State, Link, Marker>
where Link: VisitChainLink<State, Marker>,