Tree-Iter
A Rust library for iterating over tree structures in different traversal orders.
Features
- Generic support for any tree-like structure
- Breadth-first and depth-first traversal orders
- Immutable and mutable iteration
- Safe interior mutability during traversal using guard patterns
Installation
Add this to your Cargo.toml:
[]
= "0.1.0"
Usage
Basic Example
use *;
use Node;
// Create a simple tree
let tree = Node ;
// Iterate over the tree in depth-first order
let values: = tree.
.map
.collect;
assert_eq!;
// Iterate over the tree in breadth-first order
let values: = tree.
.map
.collect;
assert_eq!;
Mutable Iteration
use *;
use Node;
// Create a simple tree
let mut tree = Node ;
// Mutably iterate and modify values
let mut iter = tree.;
while let Some = iter.next
// Values have been doubled
assert_eq!;
Custom Tree Structures
Implement the traits for your own tree structures:
use *;
// Implement TreeNode for immutable iteration
// Implement TreeNodeMut for mutable iteration
// Now you can use all iterators with your custom tree