Struct graphannis_core::graph::storage::linear::LinearGraphStorage
source · pub struct LinearGraphStorage<PosT: NumValue> { /* private fields */ }
Implementations§
Trait Implementations§
source§impl<PosT: Clone + NumValue> Clone for LinearGraphStorage<PosT>
impl<PosT: Clone + NumValue> Clone for LinearGraphStorage<PosT>
source§fn clone(&self) -> LinearGraphStorage<PosT>
fn clone(&self) -> LinearGraphStorage<PosT>
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<PosT> Default for LinearGraphStorage<PosT>where
PosT: NumValue,
impl<PosT> Default for LinearGraphStorage<PosT>where
PosT: NumValue,
source§impl<'de, PosT> Deserialize<'de> for LinearGraphStorage<PosT>where
PosT: Deserialize<'de> + NumValue,
impl<'de, PosT> Deserialize<'de> for LinearGraphStorage<PosT>where
PosT: Deserialize<'de> + NumValue,
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<PosT> EdgeContainer for LinearGraphStorage<PosT>where
PosT: NumValue + 'static,
impl<PosT> EdgeContainer for LinearGraphStorage<PosT>where
PosT: NumValue + '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 has_ingoing_edges(&self, node: NodeID) -> Result<bool>
fn has_ingoing_edges(&self, node: NodeID) -> Result<bool>
Return true of the given node has any incoming edges.
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.
source§fn root_nodes<'a>(&'a self) -> Box<dyn Iterator<Item = Result<NodeID>> + 'a>
fn root_nodes<'a>(&'a self) -> Box<dyn Iterator<Item = Result<NodeID>> + 'a>
Provides an iterator over all nodes of this edge container that have no incoming edges.
fn get_statistics(&self) -> Option<&GraphStatistic>
source§impl<PosT> GraphStorage for LinearGraphStorage<PosT>
impl<PosT> GraphStorage for LinearGraphStorage<PosT>
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,
source: NodeID,
min_distance: usize,
max_distance: Bound<usize>
) -> Box<dyn Iterator<Item = Result<NodeID>> + 'a>
fn find_connected<'a>( &'a self, source: 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,
source: NodeID,
min_distance: usize,
max_distance: Bound<usize>
) -> Box<dyn Iterator<Item = Result<NodeID>> + 'a>
fn find_connected_inverse<'a>( &'a self, source: 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 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§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.Auto Trait Implementations§
impl<PosT> Freeze for LinearGraphStorage<PosT>
impl<PosT> RefUnwindSafe for LinearGraphStorage<PosT>where
PosT: RefUnwindSafe,
impl<PosT> Send for LinearGraphStorage<PosT>
impl<PosT> Sync for LinearGraphStorage<PosT>
impl<PosT> Unpin for LinearGraphStorage<PosT>where
PosT: Unpin,
impl<PosT> UnwindSafe for LinearGraphStorage<PosT>where
PosT: 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> 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