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§
Sourcefn visit(
&mut self,
value: &VisitValue,
def_region_kind: DefRegionKind,
) -> Result<Option<VisitInterrupt>>
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§
Sourcefn visit_child<T>(
&mut self,
child: &T,
def_region_kind: DefRegionKind,
) -> Result<Option<VisitInterrupt>>
fn visit_child<T>( &mut self, child: &T, def_region_kind: DefRegionKind, ) -> Result<Option<VisitInterrupt>>
Visit child under def_region_kind.
Sourcefn default_visit_children(
&mut self,
value: &VisitValue,
def_region_kind: DefRegionKind,
) -> Result<Option<VisitInterrupt>>
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".