pub trait TreeNodeRewriter: Sized {
    type Node: TreeNode;

    // Provided methods
    fn f_down(
        &mut self,
        node: Self::Node
    ) -> Result<Transformed<Self::Node>, DataFusionError> { ... }
    fn f_up(
        &mut self,
        node: Self::Node
    ) -> Result<Transformed<Self::Node>, DataFusionError> { ... }
}
Expand description

Trait for potentially recursively transforming a tree of TreeNodes.

Required Associated Types§

source

type Node: TreeNode

The node type which is rewritable.

Provided Methods§

source

fn f_down( &mut self, node: Self::Node ) -> Result<Transformed<Self::Node>, DataFusionError>

Invoked while traversing down the tree before any children are rewritten. Default implementation returns the node as is and continues recursion.

source

fn f_up( &mut self, node: Self::Node ) -> Result<Transformed<Self::Node>, DataFusionError>

Invoked while traversing up the tree after all children have been rewritten. Default implementation returns the node as is and continues recursion.

Object Safety§

This trait is not object safe.

Implementors§