pub trait GraphWriter<N: Clone, E: Clone> {
    // Required methods
    fn add_node(&mut self, data: N) -> &Node<N>;
    fn add_nodes(&mut self, data: &[N]) -> Vec<NodeID>;
    fn add_edge(&mut self, from: NodeID, to: NodeID, data: E) -> &mut Edge<E>;
    fn remove_node(&mut self, id: NodeID) -> Result<(), GraphError>;
    fn remove_edge(&mut self, id: EdgeID) -> Result<(), GraphError>;
    fn add_edges(&mut self, data: &[(NodeID, NodeID)]) -> Vec<EdgeID>
       where E: Default;

    // Provided methods
    fn remove_nodes(&mut self, ids: &[NodeID]) -> Result<(), GraphError> { ... }
    fn add_edges_with_data(
        &mut self,
        data: &[(NodeID, NodeID, E)]
    ) -> Vec<EdgeID> { ... }
    fn add_nodes_and_edges(
        &mut self,
        data: Vec<(N, Vec<NodeID>)>
    ) -> (Vec<NodeID>, Vec<EdgeID>)
       where E: Default { ... }
    fn add_nodes_and_edges_with_data(
        &mut self,
        node_data: Vec<(N, Vec<(NodeID, E)>)>
    ) -> (Vec<NodeID>, Vec<EdgeID>) { ... }
}
Expand description

GraphWriter is a trait for basic “write” operations on a graph; core operations needed to change a graph and some derived helper functions.

Required Methods§

source

fn add_node(&mut self, data: N) -> &Node<N>

source

fn add_nodes(&mut self, data: &[N]) -> Vec<NodeID>

source

fn add_edge(&mut self, from: NodeID, to: NodeID, data: E) -> &mut Edge<E>

source

fn remove_node(&mut self, id: NodeID) -> Result<(), GraphError>

source

fn remove_edge(&mut self, id: EdgeID) -> Result<(), GraphError>

source

fn add_edges(&mut self, data: &[(NodeID, NodeID)]) -> Vec<EdgeID>
where E: Default,

Provided Methods§

source

fn remove_nodes(&mut self, ids: &[NodeID]) -> Result<(), GraphError>

source

fn add_edges_with_data(&mut self, data: &[(NodeID, NodeID, E)]) -> Vec<EdgeID>

source

fn add_nodes_and_edges( &mut self, data: Vec<(N, Vec<NodeID>)> ) -> (Vec<NodeID>, Vec<EdgeID>)
where E: Default,

source

fn add_nodes_and_edges_with_data( &mut self, node_data: Vec<(N, Vec<(NodeID, E)>)> ) -> (Vec<NodeID>, Vec<EdgeID>)

Implementors§

source§

impl<T: ?Sized + SlotMapGraph<N, E>, N: Clone, E: Clone> GraphWriter<N, E> for T