pub struct PrePostOrderStorage<OrderT: NumValue, LevelT: NumValue> { /* private fields */ }
Implementations§
Trait Implementations§
Source§impl<OrderT: Clone + NumValue, LevelT: Clone + NumValue> Clone for PrePostOrderStorage<OrderT, LevelT>
impl<OrderT: Clone + NumValue, LevelT: Clone + NumValue> Clone for PrePostOrderStorage<OrderT, LevelT>
Source§fn clone(&self) -> PrePostOrderStorage<OrderT, LevelT>
fn clone(&self) -> PrePostOrderStorage<OrderT, LevelT>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<OrderT, LevelT> Default for PrePostOrderStorage<OrderT, LevelT>
impl<OrderT, LevelT> Default for PrePostOrderStorage<OrderT, LevelT>
Source§impl<'de, OrderT, LevelT> Deserialize<'de> for PrePostOrderStorage<OrderT, LevelT>
impl<'de, OrderT, LevelT> Deserialize<'de> for PrePostOrderStorage<OrderT, LevelT>
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<OrderT, LevelT> EdgeContainer for PrePostOrderStorage<OrderT, LevelT>where
for<'de> OrderT: NumValue + Deserialize<'de> + Serialize + 'static,
for<'de> LevelT: NumValue + Deserialize<'de> + Serialize + 'static,
impl<OrderT, LevelT> EdgeContainer for PrePostOrderStorage<OrderT, LevelT>where
for<'de> OrderT: NumValue + Deserialize<'de> + Serialize + 'static,
for<'de> LevelT: NumValue + Deserialize<'de> + Serialize + 'static,
Source§fn get_outgoing_edges<'a>(
&'a self,
node: NodeID,
) -> Box<dyn Iterator<Item = Result<NodeID>> + 'a>
fn get_outgoing_edges<'a>( &'a self, node: NodeID, ) -> Box<dyn Iterator<Item = Result<NodeID>> + 'a>
Get all outgoing edges for a given
node
.Source§fn get_ingoing_edges<'a>(
&'a self,
node: NodeID,
) -> Box<dyn Iterator<Item = Result<NodeID>> + 'a>
fn get_ingoing_edges<'a>( &'a self, node: NodeID, ) -> Box<dyn Iterator<Item = Result<NodeID>> + 'a>
Get all incoming edges for a given
node
.Source§fn source_nodes<'a>(&'a self) -> Box<dyn Iterator<Item = Result<NodeID>> + 'a>
fn source_nodes<'a>(&'a self) -> Box<dyn Iterator<Item = Result<NodeID>> + 'a>
Provides an iterator over all nodes of this edge container that are the source of an edge.
fn get_statistics(&self) -> Option<&GraphStatistic>
Source§fn has_outgoing_edges(&self, node: NodeID) -> Result<bool>
fn has_outgoing_edges(&self, node: NodeID) -> Result<bool>
Return true of the given node has any outgoing edges.
Source§impl<OrderT, LevelT> GraphStorage for PrePostOrderStorage<OrderT, LevelT>where
for<'de> OrderT: NumValue + Deserialize<'de> + Serialize + 'static,
for<'de> LevelT: NumValue + Deserialize<'de> + Serialize + 'static,
impl<OrderT, LevelT> GraphStorage for PrePostOrderStorage<OrderT, LevelT>where
for<'de> OrderT: NumValue + Deserialize<'de> + Serialize + 'static,
for<'de> LevelT: NumValue + Deserialize<'de> + Serialize + 'static,
Source§fn get_anno_storage(&self) -> &dyn EdgeAnnotationStorage
fn get_anno_storage(&self) -> &dyn EdgeAnnotationStorage
Get the annotation storage for the edges of this graph storage.
Source§fn serialization_id(&self) -> String
fn serialization_id(&self) -> String
Return an identifier for this graph storage which is used to distinguish the different graph storages when (de-) serialized.
Source§fn load_from(location: &Path) -> Result<Self>where
for<'de> Self: Sized + Deserialize<'de>,
fn load_from(location: &Path) -> Result<Self>where
for<'de> Self: Sized + Deserialize<'de>,
Load the graph storage from a
location
on the disk. This location is a directory, which can contain files specific to this graph storage.Source§fn save_to(&self, location: &Path) -> Result<()>
fn save_to(&self, location: &Path) -> Result<()>
Save the graph storage a
location
on the disk. This location must point to an existing directory.Source§fn find_connected<'a>(
&'a self,
node: NodeID,
min_distance: usize,
max_distance: Bound<usize>,
) -> Box<dyn Iterator<Item = Result<NodeID>> + 'a>
fn find_connected<'a>( &'a self, node: NodeID, min_distance: usize, max_distance: Bound<usize>, ) -> Box<dyn Iterator<Item = Result<NodeID>> + 'a>
Find all nodes reachable from a given start node inside the component.
Source§fn find_connected_inverse<'a>(
&'a self,
start_node: NodeID,
min_distance: usize,
max_distance: Bound<usize>,
) -> Box<dyn Iterator<Item = Result<NodeID>> + 'a>
fn find_connected_inverse<'a>( &'a self, start_node: NodeID, min_distance: usize, max_distance: Bound<usize>, ) -> Box<dyn Iterator<Item = Result<NodeID>> + 'a>
Find all nodes reachable from a given start node inside the component, when the directed edges are inversed.
Source§fn distance(&self, source: NodeID, target: NodeID) -> Result<Option<usize>>
fn distance(&self, source: NodeID, target: NodeID) -> Result<Option<usize>>
Compute the distance (shortest path length) of two nodes inside this component.
Source§fn is_connected(
&self,
source: NodeID,
target: NodeID,
min_distance: usize,
max_distance: Bound<usize>,
) -> Result<bool>
fn is_connected( &self, source: NodeID, target: NodeID, min_distance: usize, max_distance: Bound<usize>, ) -> Result<bool>
Check if two nodes are connected with any path in this component given a minimum (
min_distance
) and maximum (max_distance
) path length.Source§fn copy(
&mut self,
_node_annos: &dyn NodeAnnotationStorage,
orig: &dyn GraphStorage,
) -> Result<()>
fn copy( &mut self, _node_annos: &dyn NodeAnnotationStorage, orig: &dyn GraphStorage, ) -> Result<()>
Copy the content of another component.
This removes the existing content of this graph storage.
Source§fn as_edgecontainer(&self) -> &dyn EdgeContainer
fn as_edgecontainer(&self) -> &dyn EdgeContainer
Upcast this graph storage to the EdgeContainer trait.
Source§fn as_writeable(&mut self) -> Option<&mut dyn WriteableGraphStorage>
fn as_writeable(&mut self) -> Option<&mut dyn WriteableGraphStorage>
Try to downcast this graph storage to a WriteableGraphStorage trait.
Returns
None
if this graph storage is not writable.Source§fn inverse_has_same_cost(&self) -> bool
fn inverse_has_same_cost(&self) -> bool
If true, finding the inverse connected nodes via find_connected_inverse(…) has the same cost as the non-inverse case.
Source§impl<OrderT, LevelT> Serialize for PrePostOrderStorage<OrderT, LevelT>
impl<OrderT, LevelT> Serialize for PrePostOrderStorage<OrderT, LevelT>
Auto Trait Implementations§
impl<OrderT, LevelT> Freeze for PrePostOrderStorage<OrderT, LevelT>
impl<OrderT, LevelT> RefUnwindSafe for PrePostOrderStorage<OrderT, LevelT>where
OrderT: RefUnwindSafe,
LevelT: RefUnwindSafe,
impl<OrderT, LevelT> Send for PrePostOrderStorage<OrderT, LevelT>
impl<OrderT, LevelT> Sync for PrePostOrderStorage<OrderT, LevelT>
impl<OrderT, LevelT> Unpin for PrePostOrderStorage<OrderT, LevelT>
impl<OrderT, LevelT> UnwindSafe for PrePostOrderStorage<OrderT, LevelT>where
OrderT: UnwindSafe,
LevelT: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more