pub trait Build: Data + NodeCount {
    // Required methods
    fn add_node(&mut self, weight: Self::NodeWeight) -> Self::NodeId;
    fn update_edge(
        &mut self,
        a: Self::NodeId,
        b: Self::NodeId,
        weight: Self::EdgeWeight
    ) -> Self::EdgeId;

    // Provided method
    fn add_edge(
        &mut self,
        a: Self::NodeId,
        b: Self::NodeId,
        weight: Self::EdgeWeight
    ) -> Option<Self::EdgeId> { ... }
}
Expand description

A graph that can be extended with further nodes and edges

Required Methods§

source

fn add_node(&mut self, weight: Self::NodeWeight) -> Self::NodeId

source

fn update_edge( &mut self, a: Self::NodeId, b: Self::NodeId, weight: Self::EdgeWeight ) -> Self::EdgeId

Add or update the edge from a to b. Return the id of the affected edge.

Provided Methods§

source

fn add_edge( &mut self, a: Self::NodeId, b: Self::NodeId, weight: Self::EdgeWeight ) -> Option<Self::EdgeId>

Add a new edge. If parallel edges (duplicate) are not allowed and the edge already exists, return None.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, Ix> Build for List<E, Ix>
where Ix: IndexType,

source§

impl<N, E, Ty> Build for GraphMap<N, E, Ty>
where Ty: EdgeType, N: NodeTrait,

source§

impl<N, E, Ty, Ix> Build for StableGraph<N, E, Ty, Ix>
where Ty: EdgeType, Ix: IndexType,

source§

impl<N, E, Ty, Ix> Build for Graph<N, E, Ty, Ix>
where Ty: EdgeType, Ix: IndexType,

source§

impl<N, E, Ty, Null, Ix> Build for MatrixGraph<N, E, Ty, Null, Ix>
where Ty: EdgeType, Null: Nullable<Wrapped = E>, Ix: IndexType,