pub trait EntryEngine<'i, V> {
type EntryRef: Deref<Target = V>;
type EntryMut: DerefMut<Target = V>;
// Required methods
fn get_entry<Q: Into<Query>>(&'i self, query: Q) -> V;
fn try_entry<Q: Into<Query>>(
&'i self,
query: Q
) -> Result<Self::EntryRef, GraphError>;
fn mut_entry<Q: Into<Query>>(
&'i mut self,
query: Q
) -> Result<Self::EntryMut, GraphError>;
// Provided methods
fn set_entry<Q: Into<Query>>(
&'i mut self,
query: Q,
entry: V
) -> Result<(), GraphError> { ... }
fn get_node_data(&'i self, node: usize) -> V { ... }
fn try_node_data(&'i self, node: usize) -> Option<Self::EntryRef> { ... }
fn mut_node_data(&'i mut self, node: usize) -> Option<Self::EntryMut> { ... }
fn set_node_data(&'i mut self, node: usize, data: V) { ... }
fn get_edge_data<Q: Into<EdgeQuery>>(&'i self, edge: Q) -> V { ... }
fn try_edge_data<Q: Into<EdgeQuery>>(
&'i self,
edge: Q
) -> Option<Self::EntryRef> { ... }
fn mut_edge_data<Q: Into<EdgeQuery>>(
&'i mut self,
edge: Q
) -> Option<Self::EntryMut> { ... }
fn set_edge_data<Q: Into<EdgeQuery>>(&'i mut self, edge: Q, data: V) { ... }
}
Get the reference of data by given query from the storage.
use graph_theory::GraphEngine;