This small rust crate provides TransIter
, an iterator suitable for navigating
recursive structures and DAGs. The iterator allows for multiple modes of
iteration. For structures in which the nodes implement Ord
, this crate also
provides a TransPrioQueue
.
In addition to the iterators themselves, this crate provides some convenience traits for creating instances of those iterators.
use transiter::IntoTransIter;
let names: Vec<_> = String::new()
.trans_iter_with(|s| { let s = s.clone(); ["a", "b", "c"].iter().map(move |c| s.clone() + c)})
.take(10)
.collect();
assert_eq!(names, vec!["", "a", "b", "c", "aa", "ab", "ac", "ba", "bb", "bc"]);
The following crates serve a similar purpose:
- reciter provides a macro for creating an iterator from a recursive function.
This work is provided under the MIT license. See LICENSE
for more details.