pub fn visit_expr<'expr, V: Visitor<'expr>>(
    mut visitor: V,
    expr: &'expr Expr,
) -> Result<V::Output, V::Err> {
    visitor.start();
    let mut heap_visitor = HeapVisitor { stack: vec![] };
    heap_visitor.push_expr(expr);
    visitor.visit_expr_pre(expr)?;

    heap_visitor.run(visitor)
}
//
// Visitor
//
// The design is mostly just stolen from the regex crate's Hir
// visitor.
//
Visitor
The design is mostly just stolen from the regex crate's Hir
visitor.
Visitor The design is mostly just stolen from the regex crate ' s Hir visitor .
pub fn visit_expr<'expr, V: Visitor<'expr>>(
    mut visitor: V,
    expr: &'expr Expr,
) -> Result<V::Output, V::Err> {
    visitor.start();
    let mut heap_visitor = HeapVisitor { stack: vec![] };
    heap_visitor.push_expr(expr);
    visitor.visit_expr_pre(expr)?;
    heap_visitor.run(visitor)
}
pub fn visit_expr < ' expr , V : Visitor < ' expr > > ( mut visitor : V , expr : & ' expr Expr , ) -> Result < V :: Output , V :: Err > { visitor . start ( ) ; let mut heap_visitor = HeapVisitor { stack : vec ! [ ] } ; heap_visitor . push_expr ( expr ) ; visitor . visit_expr_pre ( expr ) ? ; heap_visitor . run ( visitor ) }
Visitor
The design is mostly just stolen from the regex crate's Hir
visitor.
Visitor The design is mostly just stolen from the regex crate ' s Hir visitor .
visitor
V
expr
&'expr Expr