Trait rs_graph::graph::Graph
[−]
[src]
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)>; type Builder: Builder<Graph = Self>; 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; }
Trait for a general undirected graph.
Associated Types
type Node: 'a + Node
Type of a node.
type Edge: 'a + Edge
Type of an edge.
type NodeIter: 'a + Iterator<Item = Self::Node>
Type of an iterator over all nodes.
type EdgeIter: 'a + Iterator<Item = Self::Edge>
Type of an iterator over all edges.
type NeighIter: 'a + Iterator<Item = (Self::Edge, Self::Node)>
Type of an iterator over incident edges.
type Builder: Builder<Graph = Self>
The default builder to construct this graph.
Required Methods
fn num_nodes(&self) -> usize
Return the number of nodes.
fn num_edges(&self) -> usize
Return the number of edges.
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.
fn nodes(&'a self) -> Self::NodeIter
Return an iterator over all nodes.
fn edges(&'a self) -> Self::EdgeIter
Return an iterator over all edges.
This iterator traverses only the forward edges.
fn neighs(&'a self, u: Self::Node) -> Self::NeighIter
Return an iterator over the edges adjacent to some node.
This iterator traverses only the forward edges.
Implementors
impl<'a, G, Gx, Nx, Ex, Ax> Graph<'a> for Attributed<G, Gx, Nx, Ex, Ax> where
G: Graph<'a>,
Gx: Default,
Nx: Default,
Ex: Default,
Ax: Default,impl<'a, T> Graph<'a> for T where
T: WrappedGraph,
T::Graph: Graph<'a>,impl<'a, ID> Graph<'a> for LinkedListGraph<ID> where
ID: 'a + PrimInt + Unsigned,