pub trait TreeNodeRewriter<N: TreeNodeRewritable>: Sized {
    // Required method
    fn mutate(&mut self, node: N) -> Result<N>;

    // Provided method
    fn pre_visit(&mut self, _node: &N) -> Result<RewriteRecursion> { ... }
}
Expand description

Trait for potentially recursively transform an TreeNodeRewritable node tree. When passed to TreeNodeRewritable::transform_using, TreeNodeRewriter::mutate is invoked recursively on all nodes of a tree.

Required Methods§

source

fn mutate(&mut self, node: N) -> Result<N>

Invoked after (Postorder) all children of node have been mutated and returns a potentially modified node.

Provided Methods§

source

fn pre_visit(&mut self, _node: &N) -> Result<RewriteRecursion>

Invoked before (Preorder) any children of node are rewritten / visited. Default implementation returns Ok(RewriteRecursion::Continue)

Implementors§