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§
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>
Sourcefn set_node_attr(
&mut self,
node_key: NodeKey,
node_attr: Self::NodeAttr,
) -> Option<Self::NodeAttr>
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.
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>
Sourcefn set_edge_attr(
&mut self,
edge_key: EdgeKey,
edge_attr: Self::EdgeAttr,
) -> Option<Self::EdgeAttr>
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.
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".