blob: 11ebb541c8759edfa20d9c0d4940e578d802def7 [file] [log] [blame]
use crate::{Edge, EdgeMut, GraphStorage, Node, NodeMut};
pub trait ReverseGraphStorage: GraphStorage {
type NodeKey;
type EdgeKey;
fn contains_node_key(&self, key: &Self::NodeKey) -> bool {
self.node_by_key(key).is_some()
}
fn node_by_key(&self, key: &Self::NodeKey) -> Option<Node<Self>>;
fn node_by_key_mut(&mut self, key: &Self::NodeKey) -> Option<NodeMut<Self>>;
fn contains_edge_key(&self, key: &Self::EdgeKey) -> bool {
self.edge_by_key(key).is_some()
}
fn edge_by_key(&self, key: &Self::EdgeKey) -> Option<Edge<Self>>;
fn edge_by_key_mut(&mut self, key: &Self::EdgeKey) -> Option<EdgeMut<Self>>;
}