Struct graphannis_core::graph::storage::disk_path::DiskPathStorage
source · pub struct DiskPathStorage { /* private fields */ }
Expand description
A GraphStorage that stores a single path for each node on disk.
Implementations§
source§impl DiskPathStorage
impl DiskPathStorage
pub fn new() -> Result<DiskPathStorage>
Trait Implementations§
source§impl EdgeContainer for DiskPathStorage
impl EdgeContainer for DiskPathStorage
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.
fn get_statistics(&self) -> Option<&GraphStatistic>
source§impl GraphStorage for DiskPathStorage
impl GraphStorage for DiskPathStorage
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,
node: NodeID,
min_distance: usize,
max_distance: Bound<usize>
) -> Box<dyn Iterator<Item = Result<NodeID>> + 'a>
fn find_connected_inverse<'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, 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 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 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 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
Self: Sized,
fn load_from(location: &Path) -> Result<Self>where
Self: Sized,
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 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.
Auto Trait Implementations§
impl Freeze for DiskPathStorage
impl !RefUnwindSafe for DiskPathStorage
impl Send for DiskPathStorage
impl Sync for DiskPathStorage
impl Unpin for DiskPathStorage
impl !UnwindSafe for DiskPathStorage
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