Trait rs_graph::graph::Digraph [−][src]
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; }
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.
Associated Types
type OutEdgeIter: 'a + Iterator<Item = (Self::Edge, Self::Node)>
Type of an iterator over the forward edges leaving a node.
type InEdgeIter: 'a + Iterator<Item = (Self::Edge, Self::Node)>
Type of an iterator over the backward edges entering a node.
Required Methods
fn src(&'a self, e: Self::Edge) -> Self::Node
Return the source node of an edge.
fn snk(&'a self, e: Self::Edge) -> Self::Node
Return the sink node of an edge.
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.
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.
Implementations on Foreign Types
impl<'a, G> Digraph<'a> for &'a G where
G: Digraph<'a>,
[src]
impl<'a, G> Digraph<'a> for &'a G where
G: Digraph<'a>,
type OutEdgeIter = G::OutEdgeIter
type InEdgeIter = G::InEdgeIter
fn src(&'a self, e: Self::Edge) -> Self::Node
[src]
fn src(&'a self, e: Self::Edge) -> Self::Node
fn snk(&'a self, e: Self::Edge) -> Self::Node
[src]
fn snk(&'a self, e: Self::Edge) -> Self::Node
fn outedges(&'a self, u: Self::Node) -> Self::OutEdgeIter
[src]
fn outedges(&'a self, u: Self::Node) -> Self::OutEdgeIter
fn inedges(&'a self, u: Self::Node) -> Self::InEdgeIter
[src]
fn inedges(&'a self, u: Self::Node) -> Self::InEdgeIter
Implementors
impl<'a, G> Digraph<'a> for ReverseDigraph<G> where
G: Digraph<'a>, type OutEdgeIter = G::InEdgeIter; type InEdgeIter = G::OutEdgeIter;impl<'a, G, Gx, Nx, Ex, Ax> Digraph<'a> for Attributed<G, Gx, Nx, Ex, Ax> where
G: Digraph<'a>,
Gx: Default,
Nx: Default,
Ex: Default,
Ax: Default, type OutEdgeIter = G::OutEdgeIter; type InEdgeIter = G::InEdgeIter;impl<'a, ID> Digraph<'a> for LinkedListGraph<ID> where
ID: 'a + PrimInt + Unsigned, type OutEdgeIter = OutEdgeIter<'a, ID>; type InEdgeIter = InEdgeIter<'a, ID>;