pub trait Graph<'a>where
Self: Sized,{
type Node: 'a + Node;
type Edge: 'a + Edge;
type NodeIter: 'a + Iterator<Item = Self::Node>;
type EdgeIter: 'a + Iterator<Item = Self::Edge>;
type NeighIter: 'a + Iterator<Item = (Self::Edge, Self::Node)>;
fn num_nodes(&self) -> usize;
fn num_edges(&self) -> usize;
fn enodes(&'a self, e: Self::Edge) -> (Self::Node, Self::Node);
fn nodes(&'a self) -> Self::NodeIter;
fn edges(&'a self) -> Self::EdgeIter;
fn neighs(&'a self, u: Self::Node) -> Self::NeighIter;
}
Expand description
Trait for a general undirected graph.
Required Associated Types
Required Methods
sourcefn enodes(&'a self, e: Self::Edge) -> (Self::Node, Self::Node)
fn enodes(&'a self, e: Self::Edge) -> (Self::Node, Self::Node)
Return the nodes connected by an edge.
The order of the nodes is undefined.