Skip to main content

GraphTrait

Trait GraphTrait 

Source
pub trait GraphTrait {
    type NodeAttr;
    type EdgeAttr;

    // Required methods
    fn add_node(&mut self, node_attr: Self::NodeAttr) -> NodeKey;
    fn delete_node(&mut self, node_key: NodeKey) -> Option<Self::NodeAttr>;
    fn add_edge(
        &mut self,
        source: NodeKey,
        target: NodeKey,
        edge_attr: Self::EdgeAttr,
    ) -> Option<Self::EdgeAttr>;
    fn delete_edge(
        &mut self,
        source: NodeKey,
        target: NodeKey,
    ) -> Option<Self::EdgeAttr>;
    fn get_node_attr(&self, node_key: NodeKey) -> Option<&Self::NodeAttr>;
    fn get_mut_node_attr(
        &mut self,
        node_key: NodeKey,
    ) -> Option<&mut Self::NodeAttr>;
    fn set_node_attr(
        &mut self,
        node_key: NodeKey,
        node_attr: Self::NodeAttr,
    ) -> Option<Self::NodeAttr>;
    fn get_edge_attr(&self, edge_key: EdgeKey) -> Option<&Self::EdgeAttr>;
    fn get_mut_edge_attr(
        &mut self,
        edge_key: EdgeKey,
    ) -> Option<&mut Self::EdgeAttr>;
    fn set_edge_attr(
        &mut self,
        edge_key: EdgeKey,
        edge_attr: Self::EdgeAttr,
    ) -> Option<Self::EdgeAttr>;
    fn edges(&self) -> impl Iterator<Item = (NodeKey, NodeKey, &Self::EdgeAttr)>;
}

Required Associated Types§

Required Methods§

Source

fn add_node(&mut self, node_attr: Self::NodeAttr) -> NodeKey

Source

fn delete_node(&mut self, node_key: NodeKey) -> Option<Self::NodeAttr>

Source

fn add_edge( &mut self, source: NodeKey, target: NodeKey, edge_attr: Self::EdgeAttr, ) -> Option<Self::EdgeAttr>

Source

fn delete_edge( &mut self, source: NodeKey, target: NodeKey, ) -> Option<Self::EdgeAttr>

Source

fn get_node_attr(&self, node_key: NodeKey) -> Option<&Self::NodeAttr>

Source

fn get_mut_node_attr( &mut self, node_key: NodeKey, ) -> Option<&mut Self::NodeAttr>

Source

fn set_node_attr( &mut self, node_key: NodeKey, node_attr: Self::NodeAttr, ) -> Option<Self::NodeAttr>

Sets the node attribute for the given node key that already exists in the graph.

Source

fn get_edge_attr(&self, edge_key: EdgeKey) -> Option<&Self::EdgeAttr>

Source

fn get_mut_edge_attr( &mut self, edge_key: EdgeKey, ) -> Option<&mut Self::EdgeAttr>

Source

fn set_edge_attr( &mut self, edge_key: EdgeKey, edge_attr: Self::EdgeAttr, ) -> Option<Self::EdgeAttr>

Sets the edge attribute for the given edge key that already exists in the graph.

Source

fn edges(&self) -> impl Iterator<Item = (NodeKey, NodeKey, &Self::EdgeAttr)>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<NodeAttr, EdgeAttr> GraphTrait for Graph<NodeAttr, EdgeAttr>

Source§

type NodeAttr = NodeAttr

Source§

type EdgeAttr = EdgeAttr