Trait Visitor

pub trait Visitor {
    type Break;
}
Expand description

A visitor.

This trait provides the Break type used by its two child traits Visit and VisitMut. All visitors can abort visitation early by returning ControlFlow::Break. For the common case of visitors that never return early, use std::convert::Infallible. This is the default type used by derive(Visitor).

Required Associated Types§

type Break

The type used for early-return, if the visitor supports it. Use an empty type like std::convert::Infallible if the visitor does not short-circuit.

Implementors§

Source§

impl Visitor for Deps

Source§

impl Visitor for StorageVisitor

Source§

impl Visitor for RemoveLastParamVisitor

Source§

impl Visitor for RemoveMarkersVisitor

Source§

impl Visitor for RemoveAdtClausesVisitor

Source§

impl Visitor for LocalsRenumberVisitor

Source§

impl Visitor for LocalsUsageVisitor

Source§

impl Visitor for RemoveSelfVisitor

Source§

impl Visitor for UsesClauseVisitor

Source§

impl Visitor for UnbindVarVisitor

Source§

impl<'a> Visitor for CheckGenericsVisitor<'a>

Source§

impl<'a> Visitor for UpdateItemBody<'a>

Source§

impl<'a> Visitor for PartialMonomorphizer<'a>

Source§

impl<'a> Visitor for NormalizeFnPtr<'a>

Source§

impl<'a> Visitor for SubstVisitor<'a>

Source§

impl<'a, 'b> Visitor for IndexVisitor<'a, 'b>

Source§

impl<'pm, 'ctx> Visitor for MutabilityShapeBuilder<'pm, 'ctx>

Source§

impl<F> Visitor for DynVisitor<F>

Source§

impl<F: FnMut(&mut Block), G: FnMut(&mut Statement)> Visitor for BlockVisitor<F, G>

Source§

impl<V: Visitor> Visitor for AstVisitableWrapper<V>

Source§

type Break = <V as Visitor>::Break

Source§

impl<V: Visitor> Visitor for BodyVisitableWrapper<V>

Source§

type Break = <V as Visitor>::Break

Source§

impl<V: Visitor> Visitor for DontLeakImplDetails<V>

Source§

type Break = <V as Visitor>::Break

Source§

impl<V: Visitor> Visitor for VisitWithBinderDepth<V>

Source§

type Break = <V as Visitor>::Break

Source§

impl<V: Visitor> Visitor for VisitWithBinderStack<V>

Source§

type Break = <V as Visitor>::Break

Source§

impl<V: Visitor> Visitor for VisitWithItem<V>

Source§

type Break = <V as Visitor>::Break

Source§

impl<V: Visitor> Visitor for VisitWithSpan<V>

Source§

type Break = <V as Visitor>::Break