Trait syntax::visit::Visitor[src]
pub trait Visitor<E: Clone> {
fn visit_ident(&mut self, _sp: Span, _ident: Ident, _e: E) { ... }
fn visit_mod(&mut self, m: &Mod, _s: Span, _n: NodeId, e: E) { ... }
fn visit_view_item(&mut self, i: &ViewItem, e: E) { ... }
fn visit_foreign_item(&mut self, i: &ForeignItem, e: E) { ... }
fn visit_item(&mut self, i: &Item, e: E) { ... }
fn visit_local(&mut self, l: &Local, e: E) { ... }
fn visit_block(&mut self, b: &Block, e: E) { ... }
fn visit_stmt(&mut self, s: &Stmt, e: E) { ... }
fn visit_arm(&mut self, a: &Arm, e: E) { ... }
fn visit_pat(&mut self, p: &Pat, e: E) { ... }
fn visit_decl(&mut self, d: &Decl, e: E) { ... }
fn visit_expr(&mut self, ex: &Expr, e: E) { ... }
fn visit_expr_post(&mut self, _ex: &Expr, _e: E) { ... }
fn visit_ty(&mut self, t: &Ty, e: E) { ... }
fn visit_generics(&mut self, g: &Generics, e: E) { ... }
fn visit_fn(&mut self, fk: &FnKind, fd: &FnDecl, b: &Block, s: Span, _: NodeId, e: E) { ... }
fn visit_ty_method(&mut self, t: &TypeMethod, e: E) { ... }
fn visit_trait_method(&mut self, t: &TraitMethod, e: E) { ... }
fn visit_struct_def(&mut self, s: &StructDef, _: Ident, _: &Generics, _: NodeId, e: E) { ... }
fn visit_struct_field(&mut self, s: &StructField, e: E) { ... }
fn visit_variant(&mut self, v: &Variant, g: &Generics, e: E) { ... }
fn visit_opt_lifetime_ref(&mut self, _span: Span, opt_lifetime: &Option<Lifetime>, env: E) { ... }
fn visit_lifetime_ref(&mut self, _lifetime: &Lifetime, _e: E) { ... }
fn visit_lifetime_decl(&mut self, _lifetime: &Lifetime, _e: E) { ... }
fn visit_explicit_self(&mut self, es: &ExplicitSelf, e: E) { ... }
fn visit_mac(&mut self, macro: &Mac, e: E) { ... }
fn visit_path(&mut self, path: &Path, _id: NodeId, e: E) { ... }
fn visit_attribute(&mut self, _attr: &Attribute, _e: E) { ... }
}Each method of the Visitor trait is a hook to be potentially
overridden. Each method's default implementation recursively visits
the substructure of the input via the corresponding walk method;
e.g. the visit_mod method by default calls visit::walk_mod.
If you want to ensure that your code handles every variant
explicitly, you need to override each method. (And you also need
to monitor future changes to Visitor in case a new method with a
new default implementation gets introduced.)
Provided Methods
fn visit_ident(&mut self, _sp: Span, _ident: Ident, _e: E)
Visit the idents
fn visit_mod(&mut self, m: &Mod, _s: Span, _n: NodeId, e: E)
fn visit_view_item(&mut self, i: &ViewItem, e: E)
fn visit_foreign_item(&mut self, i: &ForeignItem, e: E)
fn visit_item(&mut self, i: &Item, e: E)
fn visit_local(&mut self, l: &Local, e: E)
fn visit_block(&mut self, b: &Block, e: E)
fn visit_stmt(&mut self, s: &Stmt, e: E)
fn visit_arm(&mut self, a: &Arm, e: E)
fn visit_pat(&mut self, p: &Pat, e: E)
fn visit_decl(&mut self, d: &Decl, e: E)
fn visit_expr(&mut self, ex: &Expr, e: E)
fn visit_expr_post(&mut self, _ex: &Expr, _e: E)
fn visit_ty(&mut self, t: &Ty, e: E)
fn visit_generics(&mut self, g: &Generics, e: E)
fn visit_fn(&mut self, fk: &FnKind, fd: &FnDecl, b: &Block, s: Span, _: NodeId, e: E)
fn visit_ty_method(&mut self, t: &TypeMethod, e: E)
fn visit_trait_method(&mut self, t: &TraitMethod, e: E)
fn visit_struct_def(&mut self, s: &StructDef, _: Ident, _: &Generics, _: NodeId, e: E)
fn visit_struct_field(&mut self, s: &StructField, e: E)
fn visit_variant(&mut self, v: &Variant, g: &Generics, e: E)
fn visit_opt_lifetime_ref(&mut self, _span: Span, opt_lifetime: &Option<Lifetime>, env: E)
Visits an optional reference to a lifetime. The span is
the span of some surrounding reference should opt_lifetime
be None.
fn visit_lifetime_ref(&mut self, _lifetime: &Lifetime, _e: E)
Visits a reference to a lifetime
fn visit_lifetime_decl(&mut self, _lifetime: &Lifetime, _e: E)
Visits a declaration of a lifetime
fn visit_explicit_self(&mut self, es: &ExplicitSelf, e: E)
fn visit_mac(&mut self, macro: &Mac, e: E)
fn visit_path(&mut self, path: &Path, _id: NodeId, e: E)
fn visit_attribute(&mut self, _attr: &Attribute, _e: E)
Implementors
impl<'a, O: IdVisitingOperation> Visitor<()> for IdVisitor<'a, O>