pub trait Walker<Context> {
    type Item;
    fn walk_next(&mut self, context: Context) -> Option<Self::Item>;
    fn iter(self, context: Context) -> WalkerIter<Self, Context>ⓘNotable traits for WalkerIter<W, C>impl<W, C> Iterator for WalkerIter<W, C> where
    W: Walker<C>,
    C: Clone,     type Item = W::Item;
    where
        Self: Sized,
        Context: Clone,
    { ... }
}Expand description
A walker is a traversal state, but where part of the traversal information is supplied manually to each next call.
This for example allows graph traversals that don’t hold a borrow of the graph they are traversing.
Associated Types
Required methods
Provided methods
fn iter(self, context: Context) -> WalkerIter<Self, Context>ⓘNotable traits for WalkerIter<W, C>impl<W, C> Iterator for WalkerIter<W, C> where
    W: Walker<C>,
    C: Clone,     type Item = W::Item; where
    Self: Sized,
    Context: Clone, 
fn iter(self, context: Context) -> WalkerIter<Self, Context>ⓘNotable traits for WalkerIter<W, C>impl<W, C> Iterator for WalkerIter<W, C> where
    W: Walker<C>,
    C: Clone,     type Item = W::Item; where
    Self: Sized,
    Context: Clone, 
W: Walker<C>,
C: Clone, type Item = W::Item;
Create an iterator out of the walker and given context.