Module tree_node

Source
Expand description

TreeNode for visiting and rewriting expression and plan trees

Structs§

Transformed
Result of tree walk / transformation APIs

Enums§

TreeNodeRecursion
Controls how TreeNode recursions should proceed.

Traits§

ConcreteTreeNode
Instead of implementing TreeNode, it’s recommended to implement a ConcreteTreeNode for trees that contain nodes with payloads. This approach ensures safe execution of algorithms involving payloads, by enforcing rules for detaching and reattaching child nodes.
DynTreeNode
Helper trait for implementing TreeNode that have children stored as Arcs. If some trait object, such as dyn T, implements this trait, its related Arc<dyn T> will automatically implement TreeNode.
TransformedResult
Transformation helper to access Transformed fields in a Result easily.
TreeNode
API for inspecting and rewriting tree data structures.
TreeNodeContainer
TreeNodeContainer contains elements that a function can be applied on or mapped. The elements of the container are siblings so the continuation rules are similar to TreeNodeRecursion::visit_sibling / Transformed::transform_sibling.
TreeNodeIterator
Transformation helper to process a sequence of iterable tree nodes that are siblings.
TreeNodeRefContainer
TreeNodeRefContainer contains references to elements that a function can be applied on. The elements of the container are siblings so the continuation rules are similar to TreeNodeRecursion::visit_sibling.
TreeNodeRewriter
A Visitor for recursively rewriting TreeNodes via TreeNode::rewrite.
TreeNodeVisitor
A Visitor for recursively inspecting TreeNodes via TreeNode::visit.