petgraph::visit

Trait Walker

Source
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.

Required Associated Types§

Required Methods§

Source

fn walk_next(&mut self, context: Context) -> Option<Self::Item>

Advance to the next item

Provided Methods§

Source

fn iter(self, context: Context) -> WalkerIter<Self, Context>
where Self: Sized, Context: Clone,

Create an iterator out of the walker and given context.

Implementations on Foreign Types§

Source§

impl<'a, C, W> Walker<C> for &'a mut W
where W: Walker<C> + ?Sized,

Source§

type Item = <W as Walker<C>>::Item

Source§

fn walk_next(&mut self, context: C) -> Option<Self::Item>

Implementors§

Source§

impl<G> Walker<G> for Bfs<G::NodeId, G::Map>

Source§

impl<G> Walker<G> for Dfs<G::NodeId, G::Map>

Source§

impl<G> Walker<G> for DfsPostOrder<G::NodeId, G::Map>

Source§

impl<G> Walker<G> for Topo<G::NodeId, G::Map>