pub trait EdgeOmnitigLikeExt<Graph: GraphBase, EdgeSubwalk: EdgeWalk<Graph, EdgeSubwalk> + ?Sized>: EdgeWalk<Graph, EdgeSubwalk> {
    // Provided methods
    fn compute_trivial_heart(&self, graph: &Graph) -> Option<(usize, usize)>
       where Graph: StaticGraph { ... }
    fn compute_trivial_heart_edge_len(&self, graph: &Graph) -> Option<usize>
       where Graph: StaticGraph { ... }
    fn is_non_trivial(&self, graph: &Graph) -> bool
       where Graph: StaticGraph { ... }
    fn compute_univocal_extension<ResultWalk: From<Vec<Graph::EdgeIndex>>>(
        &self,
        graph: &Graph
    ) -> ResultWalk
       where Graph: StaticGraph { ... }
    fn compute_univocal_extension_non_scc<ResultWalk: From<Vec<Graph::EdgeIndex>>>(
        &self,
        graph: &Graph
    ) -> ResultWalk
       where Graph: StaticGraph { ... }
    fn compute_univocal_extension_with_original_offset<ResultWalk: From<Vec<Graph::EdgeIndex>>>(
        &self,
        graph: &Graph
    ) -> (usize, ResultWalk)
       where Graph: StaticGraph { ... }
    fn compute_univocal_extension_with_original_offset_non_scc<ResultWalk: From<Vec<Graph::EdgeIndex>>>(
        &self,
        graph: &Graph
    ) -> (usize, ResultWalk)
       where Graph: StaticGraph { ... }
}
Expand description

Functions for edge-centric omnitig-like walks. Since this is an extension trait, it only contains default-implemented functions.

Provided Methods§

source

fn compute_trivial_heart(&self, graph: &Graph) -> Option<(usize, usize)>where Graph: StaticGraph,

Computes the trivial heart of the walk, or returns None if the walk is non-trivial. The heart is returned as the index of the last split arc and the index of the first join arc of the walk.

source

fn compute_trivial_heart_edge_len(&self, graph: &Graph) -> Option<usize>where Graph: StaticGraph,

Compute the amount of edges in the trivial heart, or returns None if the walk is non-trivial. Recall that a heart is a walk from arc to arc.

source

fn is_non_trivial(&self, graph: &Graph) -> boolwhere Graph: StaticGraph,

Returns true if this walk is non-trivial.

source

fn compute_univocal_extension<ResultWalk: From<Vec<Graph::EdgeIndex>>>( &self, graph: &Graph ) -> ResultWalkwhere Graph: StaticGraph,

Compute the univocal extension of a walk. That is the concatenation LWR, where W is the walk, L the longest R-univocal walk to the first edge of W and R the longest univocal walk from the last edge of W.

source

fn compute_univocal_extension_non_scc<ResultWalk: From<Vec<Graph::EdgeIndex>>>( &self, graph: &Graph ) -> ResultWalkwhere Graph: StaticGraph,

Compute the univocal extension of a walk. That is the concatenation LWR, where W is the walk, L the longest R-univocal walk to the first edge of W and R the longest univocal walk from the last edge of W. This variant handles not strongly connected graphs by forbidding L and R to repeat edges.

source

fn compute_univocal_extension_with_original_offset<ResultWalk: From<Vec<Graph::EdgeIndex>>>( &self, graph: &Graph ) -> (usize, ResultWalk)where Graph: StaticGraph,

Compute the univocal extension of a walk. That is the concatenation LWR, where W is the walk, L the longest R-univocal walk to the first edge of W and R the longest univocal walk from the last edge of W.

Additionally to the univocal extension, this function returns the offset of the original walk in the univocal extension as usize.

source

fn compute_univocal_extension_with_original_offset_non_scc<ResultWalk: From<Vec<Graph::EdgeIndex>>>( &self, graph: &Graph ) -> (usize, ResultWalk)where Graph: StaticGraph,

Compute the univocal extension of a walk. That is the concatenation LWR, where W is the walk, L the longest R-univocal walk to the first edge of W and R the longest univocal walk from the last edge of W. This variant handles not strongly connected graphs by forbidding L and R to repeat edges.

Additionally to the univocal extension, this function returns the offset of the original walk in the univocal extension as usize.

Implementors§

source§

impl<Graph: GraphBase, Walk: EdgeWalk<Graph, Subwalk> + ?Sized, Subwalk: EdgeWalk<Graph, Subwalk> + ?Sized> EdgeOmnitigLikeExt<Graph, Subwalk> for Walk