Trait graphannis::graph::GraphStorage[][src]

pub trait GraphStorage: EdgeContainer {
    fn find_connected(
        &'a self,
        node: u64,
        min_distance: usize,
        max_distance: Bound<usize>
    ) -> Box<dyn Iterator<Item = u64> + 'a, Global>;
fn find_connected_inverse(
        &'a self,
        node: u64,
        min_distance: usize,
        max_distance: Bound<usize>
    ) -> Box<dyn Iterator<Item = u64> + 'a, Global>;
fn distance(&self, source: u64, target: u64) -> Option<usize>;
fn is_connected(
        &self,
        source: u64,
        target: u64,
        min_distance: usize,
        max_distance: Bound<usize>
    ) -> bool;
fn get_anno_storage(&self) -> &dyn AnnotationStorage<Edge>;
fn copy(
        &mut self,
        node_annos: &dyn AnnotationStorage<u64>,
        orig: &dyn GraphStorage
    ) -> Result<(), GraphAnnisCoreError>;
fn as_edgecontainer(&self) -> &dyn EdgeContainer;
fn serialization_id(&self) -> String;
fn load_from(location: &Path) -> Result<Self, GraphAnnisCoreError>;
fn save_to(&self, location: &Path) -> Result<(), GraphAnnisCoreError>; fn as_writeable(&mut self) -> Option<&mut dyn WriteableGraphStorage> { ... }
fn inverse_has_same_cost(&self) -> bool { ... } }
Expand description

A graph storage is the representation of an edge component of a graph with specific structures. These specific structures are exploited to efficiently implement reachability queries.

Required methods

Find all nodes reachable from a given start node inside the component.

Find all nodes reachable from a given start node inside the component, when the directed edges are inversed.

Compute the distance (shortest path length) of two nodes inside this component.

Check if two nodes are connected with any path in this component given a minimum (min_distance) and maximum (max_distance) path length.

Get the annotation storage for the edges of this graph storage.

Copy the content of another component. This removes the existing content of this graph storage.

Upcast this graph storage to the EdgeContainer trait.

Return an identifier for this graph storage which is used to distinguish the different graph storages when (de-) serialized.

Load the graph storage from a location on the disk. This location is a directory, which can contain files specific to this graph storage.

Save the graph storage a location on the disk. This location must point to an existing directory.

Provided methods

Try to downcast this graph storage to a WriteableGraphStorage trait. Returns None if this graph storage is not writable.

If true, finding the inverse connected nodes via find_connected_inverse(…) has the same cost as the non-inverse case.

Implementations on Foreign Types

Return an identifier for this graph storage which is used to distinguish the different graph storages when (de-) serialized.

Implementors