Trait graphviz::GraphWalkExperimental
[-]
[+]
[src]
pub trait GraphWalk<'a, N, E> { fn nodes(&'a self) -> Nodes<'a, N>; fn edges(&'a self) -> Edges<'a, E>; fn source(&'a self, edge: &E) -> N; fn target(&'a self, edge: &E) -> N; }
GraphWalk is an abstraction over a directed graph = (nodes,edges)
made up of node handles N
and edge handles E
, where each E
can be mapped to its source and target nodes.
The lifetime parameter 'a
is exposed in this trait (rather than
introduced as a generic parameter on each method declaration) so
that a client impl can choose N
and E
that have substructure
that is bound by the self lifetime 'a
.
The nodes
and edges
method each return instantiations of
CowVec
to leave implementers the freedom to create
entirely new vectors or to pass back slices into internally owned
vectors.
Required Methods
fn nodes(&'a self) -> Nodes<'a, N>
Returns all the nodes in this graph.
fn edges(&'a self) -> Edges<'a, E>
Returns all of the edges in this graph.
fn source(&'a self, edge: &E) -> N
The source node for edge
.
fn target(&'a self, edge: &E) -> N
The target node for edge
.