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

pub trait GraphStorage: EdgeContainer {
    fn find_connected<'a>(
        &'a self,
        node: &NodeID,
        min_distance: usize,
        max_distance: usize
    ) -> Box<Iterator<Item = NodeID> + 'a>;
fn find_connected_inverse<'a>(
        &'a self,
        node: &NodeID,
        min_distance: usize,
        max_distance: usize
    ) -> Box<Iterator<Item = NodeID> + 'a>;
fn distance(&self, source: &NodeID, target: &NodeID) -> Option<usize>;
fn is_connected(
        &self,
        source: &NodeID,
        target: &NodeID,
        min_distance: usize,
        max_distance: usize
    ) -> bool;
fn copy(&mut self, db: &Graph, orig: &EdgeContainer);
fn as_edgecontainer(&self) -> &EdgeContainer;
fn serialization_id(&self) -> String;
fn serialize_gs(&self, writer: &mut Write) -> Result<()>; fn as_writeable(&mut self) -> Option<&mut WriteableGraphStorage> { ... }
fn inverse_has_same_cost(&self) -> bool { ... }
fn deserialize_gs(input: &mut Read) -> Result<Self>
    where
        Self: Sized + Deserialize<'de>
, { ... } }

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

Important traits for Box<R>

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

Important traits for Box<R>

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.

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.

Serialize this graph storage.

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.

De-serialize this graph storage.

Implementors