pub trait Walker<Context> {
    type Item;
    // Required method
    fn walk_next(&mut self, context: Context) -> Option<Self::Item>;
    // Provided method
    fn iter(self, context: Context) -> WalkerIter<Self, Context> ⓘ
       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.