pub trait GraphWalk<'a> {
type Node: Clone;
type Edge: Clone;
type Subgraph: Clone;
fn nodes(&'a self) -> Nodes<'a, Self::Node>;
fn edges(&'a self) -> Edges<'a, Self::Edge>;
fn source(&'a self, edge: &Self::Edge) -> Self::Node;
fn target(&'a self, edge: &Self::Edge) -> Self::Node;
fn subgraphs(&'a self) -> Subgraphs<'a, Self::Subgraph> { ... }
fn subgraph_nodes(&'a self, _s: &Self::Subgraph) -> Nodes<'a, Self::Node> { ... }
}Expand description
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
Cow<[T]> to leave implementors the freedom to create
entirely new vectors or to pass back slices into internally owned
vectors.
Associated Types
Required methods
Provided methods
Retuns all the subgraphs in this graph.
fn subgraph_nodes(&'a self, _s: &Self::Subgraph) -> Nodes<'a, Self::Node>
fn subgraph_nodes(&'a self, _s: &Self::Subgraph) -> Nodes<'a, Self::Node>
Retuns all the subgraphs in this graph.