Struct rs_graph::adapters::network::Network [−][src]
pub struct Network<'a, G>(_);
The network graph adaptor.
It is meant to be used by borrowing the underlying graph.
let g = classes::cycle::<LinkedListGraph>(5); let n = Network::new(&g);
The network inherits all trait implementations from the underlying graph. In
particular, if the underlying graph implements IndexGraph
then nodes and
edges of the network are numbered, too:
- The
node_id
is the same as in the underlying graph, - the edge with id
i
is mapped to the edges2*i
(forward edge) and2*i+1
(backward edge).
Implementations
Trait Implementations
impl<'a, G> Clone for Network<'a, G>
[src]
impl<'a, G> Clone for Network<'a, G>
[src]fn clone(&self) -> Self
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<'a, 'g: 'a, G> Directed<'a> for Network<'g, G> where
G: Digraph<'g>,
[src]
impl<'a, 'g: 'a, G> Directed<'a> for Network<'g, G> where
G: Digraph<'g>,
[src]type OutIt = NetworkOutIt<G::IncidentIt>
Type of a graph iterator over edges leaving a node.
type InIt = NetworkInIt<G::IncidentIt>
Type of a graph iterator over edges entering a node.
type IncidentIt = NetworkIncidentIt<G::IncidentIt, (G::DirectedEdge, G::Node)>
Type of an iterator over all incident edges.
type DirectedEdge = NetworkDirectedEdge<Self::Edge>
Type of a directed edge.
fn src(&self, e: Self::Edge) -> Self::Node
[src]
fn snk(&self, e: Self::Edge) -> Self::Node
[src]
fn out_iter(&self, u: Self::Node) -> Self::OutIt
[src]
fn in_iter(&self, u: Self::Node) -> Self::InIt
[src]
fn incident_iter(&self, u: Self::Node) -> Self::IncidentIt
[src]
fn outedges(&'a self, u: Self::Node) -> GraphIter<'a, Self, Self::OutIt>ⓘ where
Self: Sized,
[src]
Self: Sized,
fn outgoing(&'a self) -> OutEdges<'a, Self> where
Self: Sized,
[src]
Self: Sized,
fn inedges(&'a self, u: Self::Node) -> GraphIter<'a, Self, Self::InIt>ⓘ where
Self: Sized,
[src]
Self: Sized,
fn incoming(&'a self) -> InEdges<'a, Self> where
Self: Sized,
[src]
Self: Sized,
fn incident_edges(
&'a self,
u: Self::Node
) -> GraphIter<'a, Self, Self::IncidentIt>ⓘ where
Self: Sized,
[src]
&'a self,
u: Self::Node
) -> GraphIter<'a, Self, Self::IncidentIt>ⓘ where
Self: Sized,
impl<'a, G> DirectedRef<'a> for Network<'a, G> where
G: 'a + Directed<'a>,
[src]
impl<'a, G> DirectedRef<'a> for Network<'a, G> where
G: 'a + Directed<'a>,
[src]impl<'a, G, I> GraphIterator<Network<'a, G>> for NetworkNodeIt<I> where
I: GraphIterator<G>,
[src]
impl<'a, G, I> GraphIterator<Network<'a, G>> for NetworkNodeIt<I> where
I: GraphIterator<G>,
[src]impl<'a, G, I> GraphIterator<Network<'a, G>> for NetworkEdgeIt<G, I> where
I: GraphIterator<G>,
I::Item: Clone,
[src]
impl<'a, G, I> GraphIterator<Network<'a, G>> for NetworkEdgeIt<G, I> where
I: GraphIterator<G>,
I::Item: Clone,
[src]impl<'a, G, I, N, E> GraphIterator<Network<'a, G>> for NetworkNeighIt<G, I> where
N: Clone,
E: Clone,
I: GraphIterator<G, Item = (E, N)>,
[src]
impl<'a, G, I, N, E> GraphIterator<Network<'a, G>> for NetworkNeighIt<G, I> where
N: Clone,
E: Clone,
I: GraphIterator<G, Item = (E, N)>,
[src]impl<'a, G, I, N, D> GraphIterator<Network<'a, G>> for NetworkOutIt<I> where
I: GraphIterator<G, Item = (D, N)>,
D: DirectedEdge,
[src]
impl<'a, G, I, N, D> GraphIterator<Network<'a, G>> for NetworkOutIt<I> where
I: GraphIterator<G, Item = (D, N)>,
D: DirectedEdge,
[src]type Item = (NetworkEdge<D::Edge>, N)
fn next(&mut self, net: &Network<'a, G>) -> Option<Self::Item>
[src]
fn size_hint(&self, net: &Network<'a, G>) -> (usize, Option<usize>)
[src]
fn count(self, net: &Network<'a, G>) -> usize
[src]
fn iter<'a>(self, g: &'a G) -> GraphIter<'a, G, Self>ⓘ where
G: Sized,
[src]
G: Sized,
impl<'a, G, I, N, D> GraphIterator<Network<'a, G>> for NetworkInIt<I> where
I: GraphIterator<G, Item = (D, N)>,
D: DirectedEdge,
[src]
impl<'a, G, I, N, D> GraphIterator<Network<'a, G>> for NetworkInIt<I> where
I: GraphIterator<G, Item = (D, N)>,
D: DirectedEdge,
[src]type Item = (NetworkEdge<D::Edge>, N)
fn next(&mut self, net: &Network<'a, G>) -> Option<Self::Item>
[src]
fn size_hint(&self, net: &Network<'a, G>) -> (usize, Option<usize>)
[src]
fn count(self, net: &Network<'a, G>) -> usize
[src]
fn iter<'a>(self, g: &'a G) -> GraphIter<'a, G, Self>ⓘ where
G: Sized,
[src]
G: Sized,
impl<'a, G, I, N, D> GraphIterator<Network<'a, G>> for NetworkIncidentIt<I, I::Item> where
I: GraphIterator<G, Item = (D, N)>,
N: Clone,
D: DirectedEdge + Clone,
[src]
impl<'a, G, I, N, D> GraphIterator<Network<'a, G>> for NetworkIncidentIt<I, I::Item> where
I: GraphIterator<G, Item = (D, N)>,
N: Clone,
D: DirectedEdge + Clone,
[src]type Item = (NetworkDirectedEdge<NetworkEdge<D::Edge>>, N)
fn next(&mut self, net: &Network<'a, G>) -> Option<Self::Item>
[src]
fn size_hint(&self, net: &Network<'a, G>) -> (usize, Option<usize>)
[src]
fn count(self, net: &Network<'a, G>) -> usize
[src]
fn iter<'a>(self, g: &'a G) -> GraphIter<'a, G, Self>ⓘ where
G: Sized,
[src]
G: Sized,
impl<'a, 'g: 'a, G> GraphSize<'a> for Network<'g, G> where
G: Digraph<'g>,
[src]
impl<'a, 'g: 'a, G> GraphSize<'a> for Network<'g, G> where
G: Digraph<'g>,
[src]type NodeIt = NetworkNodeIt<G::NodeIt>
Type of an iterator over all nodes.
type EdgeIt = NetworkEdgeIt<G, G::EdgeIt>
Type of an iterator over all edges.
fn num_nodes(&self) -> usize
[src]
fn num_edges(&self) -> usize
[src]
fn nodes_iter(&self) -> Self::NodeIt
[src]
fn edges_iter(&self) -> Self::EdgeIt
[src]
fn nodes(&'a self) -> NodeIterator<'a, Self> where
Self: Sized,
[src]
Self: Sized,
fn edges(&'a self) -> EdgeIterator<'a, Self> where
Self: Sized,
[src]
Self: Sized,
impl<'a, G> GraphSizeRef<'a> for Network<'a, G> where
G: Directed<'a>,
[src]
impl<'a, G> GraphSizeRef<'a> for Network<'a, G> where
G: Directed<'a>,
[src]impl<'a, 'g: 'a, G> IndexGraph<'a> for Network<'g, G> where
G: Digraph<'g> + IndexGraph<'g>,
[src]
impl<'a, 'g: 'a, G> IndexGraph<'a> for Network<'g, G> where
G: Digraph<'g> + IndexGraph<'g>,
[src]impl<'a, G> IndexGraphRef<'a> for Network<'a, G> where
G: Directed<'a> + IndexGraph<'a>,
[src]
impl<'a, G> IndexGraphRef<'a> for Network<'a, G> where
G: Directed<'a> + IndexGraph<'a>,
[src]impl<'a, 'g: 'a, G> Undirected<'a> for Network<'g, G> where
G: Digraph<'g>,
[src]
impl<'a, 'g: 'a, G> Undirected<'a> for Network<'g, G> where
G: Digraph<'g>,
[src]type NeighIt = NetworkNeighIt<G, G::NeighIt>
Type of a graph iterator over all incident edges.
fn enodes(&self, e: Self::Edge) -> (Self::Node, Self::Node)
[src]
fn neigh_iter(&self, u: Self::Node) -> Self::NeighIt
[src]
fn neighs(&'a self, u: Self::Node) -> GraphIter<'a, Self, Self::NeighIt>ⓘ where
Self: Sized,
[src]
Self: Sized,
fn neighbors(&'a self) -> Neighbors<'a, Self> where
Self: Sized,
[src]
Self: Sized,
Auto Trait Implementations
impl<'a, G> RefUnwindSafe for Network<'a, G> where
G: RefUnwindSafe,
impl<'a, G> RefUnwindSafe for Network<'a, G> where
G: RefUnwindSafe,
impl<'a, G> UnwindSafe for Network<'a, G> where
G: RefUnwindSafe,
impl<'a, G> UnwindSafe for Network<'a, G> where
G: RefUnwindSafe,
Blanket Implementations
impl<'a, G> Graph<'a> for G where
G: GraphSize<'a> + Undirected<'a>,
[src]
impl<'a, G> Graph<'a> for G where
G: GraphSize<'a> + Undirected<'a>,
[src]impl<'a, T> IndexDigraph<'a> for T where
T: IndexGraph<'a> + Digraph<'a>,
[src]
impl<'a, T> IndexDigraph<'a> for T where
T: IndexGraph<'a> + Digraph<'a>,
[src]