Crate transiter[][src]

Expand description

Transitive iterator and utilities

This micro-crate provides TransIter and TransPrioQueue, iterators suitable for navigating DAGs. The iterators may be used for iterating over all nodes of some recursive structure or, more generally, implement a transitive closure. It requires a recursion function which yields an iterator over the next items or nodes.

The iterators may be created via associated functions such as the obligatory TransIter::new. However, the canonical way to create a TransIter or TransPrioQueue would be by using the IntoTransIter trait, which provides the trans_iter_with and trans_prio_queue_with functions. This library provides a blanket implementation for item types.

For types with an obvious or inherent relation to associated items, users may choose to implement the AutoTransIter trait. It provides the more convenient trans_iter function which does not require a recursion function to be supplied for each call.


Transitive iterator

Transitive priority queue


Create a TransIter directly from some value, with type-specific recursion

Create a TransIter directly from some value