icentral-neighbors 0.1.0

A comprehensive crate for node and edge operations within graph structures, offering efficient manipulation and management capabilities.
Documentation
crate::ix!();

pub trait GetNodes {

    fn nodes(&self) -> &NeighborsMap;
}

pub trait UnlinkAll {

    fn unlink_all(&mut self, src: NodeId, dst: NodeId);
}

pub trait AddEdge {

    fn add_edge(&mut self, e: &Edge);
}

pub trait UnlinkEdge {

    fn unlink_edge(&mut self, e: &Edge);
}

pub trait ReinitWithLen {

    fn reinit(&mut self, len: usize);
}

pub trait AddIsolatedNode {

    fn add_isolated_node(
        &mut self, 
        node: NodeId
    );
}

pub trait SetNeighbors {

    fn set_neighbors(
        &mut self, 
        node: NodeId, 
        nbrs: Vec<NodeId>
    );
}

pub trait AddNeighbor {

    fn add_neighbor(
        &mut self, 
        node: NodeId, 
        nbr:  NodeId
    );
}

pub trait RemoveNodeAndNeighbors {

    fn remove_node_and_neighbors(&mut self, node: NodeId);
}