[][src]Struct bigraph::NodeBigraphWrapper

pub struct NodeBigraphWrapper<Topology: GraphBase> {
    pub topology: Topology,
    // some fields omitted
}

Wrapper for a static graph that adds a binode mapping function.

Bigraphs can be represented with this struct by creating their topology as normal directed graph where each binode is split into its two parts. The binode mapping function then associates the parts with each other.

use bigraph::node_bigraph_wrapper::NodeBigraphWrapper;
use bigraph::{StaticBigraph, MutableGraphContainer, StaticBigraphFromDigraph};
use bigraph::petgraph_impl;

let mut graph = petgraph_impl::new();
let n1 = graph.add_node(0);
let n2 = graph.add_node(1);
graph.add_edge(n1.clone(), n2.clone(), ());
graph.add_edge(n2.clone(), n1.clone(), ());
let bigraph = NodeBigraphWrapper::new(graph, |n| if n % 2 == 0 {n + 1} else {n - 1});
assert_eq!(Some(n2.clone()), bigraph.partner_node(n1.clone()));
assert_eq!(Some(n1.clone()), bigraph.partner_node(n2.clone()));

Fields

topology: Topology

Trait Implementations

impl<Topology: Debug + GraphBase> Debug for NodeBigraphWrapper<Topology> where
    Topology::OptionalNodeIndex: Debug
[src]

impl<Topology: Default + GraphBase> Default for NodeBigraphWrapper<Topology>[src]

impl<Topology: DynamicGraph> DynamicBigraph for NodeBigraphWrapper<Topology> where
    Self::NodeData: BidirectedNodeData,
    Self::EdgeData: Clone
[src]

impl<'a, Topology: GraphBase> GraphBase for NodeBigraphWrapper<Topology>[src]

type NodeData = Topology::NodeData

type EdgeData = Topology::EdgeData

type OptionalNodeIndex = Topology::OptionalNodeIndex

type OptionalEdgeIndex = Topology::OptionalEdgeIndex

type NodeIndex = Topology::NodeIndex

type EdgeIndex = Topology::EdgeIndex

impl<Topology: ImmutableGraphContainer> ImmutableGraphContainer for NodeBigraphWrapper<Topology>[src]

impl<Topology: MutableGraphContainer + StaticGraph> MutableGraphContainer for NodeBigraphWrapper<Topology>[src]

impl<'a, Topology: NavigableGraph<'a>> NavigableGraph<'a> for NodeBigraphWrapper<Topology>[src]

type OutNeighbors = <Topology as NavigableGraph<'a>>::OutNeighbors

type InNeighbors = <Topology as NavigableGraph<'a>>::InNeighbors

impl<Topology: StaticGraph> StaticBigraph for NodeBigraphWrapper<Topology>[src]

impl<Topology: StaticGraph> StaticBigraphFromDigraph for NodeBigraphWrapper<Topology> where
    Self::NodeData: Eq + Hash + Debug
[src]

type Topology = Topology

The type of directed topology the bigraph is created from.

Auto Trait Implementations

impl<Topology> RefUnwindSafe for NodeBigraphWrapper<Topology> where
    Topology: RefUnwindSafe,
    <Topology as GraphBase>::OptionalNodeIndex: RefUnwindSafe

impl<Topology> Send for NodeBigraphWrapper<Topology> where
    Topology: Send,
    <Topology as GraphBase>::OptionalNodeIndex: Send

impl<Topology> Sync for NodeBigraphWrapper<Topology> where
    Topology: Sync,
    <Topology as GraphBase>::OptionalNodeIndex: Sync

impl<Topology> Unpin for NodeBigraphWrapper<Topology> where
    Topology: Unpin,
    <Topology as GraphBase>::OptionalNodeIndex: Unpin

impl<Topology> UnwindSafe for NodeBigraphWrapper<Topology> where
    Topology: UnwindSafe,
    <Topology as GraphBase>::OptionalNodeIndex: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DynamicGraph for T where
    T: MutableGraphContainer + StaticGraph
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> StaticGraph for T where
    T: ImmutableGraphContainer + for<'a> NavigableGraph<'a>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.