pub trait Digraph<'a>: Graph<'a> {
type OutEdgeIter: 'a + Iterator<Item = (Self::Edge, Self::Node)>;
type InEdgeIter: 'a + Iterator<Item = (Self::Edge, Self::Node)>;
fn src(&'a self, e: Self::Edge) -> Self::Node;
fn snk(&'a self, e: Self::Edge) -> Self::Node;
fn outedges(&'a self, u: Self::Node) -> Self::OutEdgeIter;
fn inedges(&'a self, u: Self::Node) -> Self::InEdgeIter;
}
Expand description
Trait for a general directed graph.
This trait adds a few additional methods to explicitely access the direction information of an edge. In particular, the direction information can be used in the following ways:
- The
src
andsnk
methods return the source and sink nodes of an edge. - The iterators
outedges
andinedges
iterate only over edges leaving or entering a certain node, respectively.
Required Associated Types
sourcetype OutEdgeIter: 'a + Iterator<Item = (Self::Edge, Self::Node)>
type OutEdgeIter: 'a + Iterator<Item = (Self::Edge, Self::Node)>
Type of an iterator over the forward edges leaving a node.
sourcetype InEdgeIter: 'a + Iterator<Item = (Self::Edge, Self::Node)>
type InEdgeIter: 'a + Iterator<Item = (Self::Edge, Self::Node)>
Type of an iterator over the backward edges entering a node.
Required Methods
sourcefn outedges(&'a self, u: Self::Node) -> Self::OutEdgeIter
fn outedges(&'a self, u: Self::Node) -> Self::OutEdgeIter
Return an iterator over the outgoing edges of a node.
The iterator returns only forward edges.
sourcefn inedges(&'a self, u: Self::Node) -> Self::InEdgeIter
fn inedges(&'a self, u: Self::Node) -> Self::InEdgeIter
Return an iterator over the incoming edges of a node.
The iterator returns only backward edges.