Trait omnitigs::walks::EdgeOmnitigLikeExt
source · 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§
sourcefn compute_trivial_heart(&self, graph: &Graph) -> Option<(usize, usize)>where
Graph: StaticGraph,
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.
sourcefn compute_trivial_heart_edge_len(&self, graph: &Graph) -> Option<usize>where
Graph: StaticGraph,
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.
sourcefn is_non_trivial(&self, graph: &Graph) -> boolwhere
Graph: StaticGraph,
fn is_non_trivial(&self, graph: &Graph) -> boolwhere Graph: StaticGraph,
Returns true if this walk is non-trivial.
sourcefn compute_univocal_extension<ResultWalk: From<Vec<Graph::EdgeIndex>>>(
&self,
graph: &Graph
) -> ResultWalkwhere
Graph: StaticGraph,
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.
sourcefn compute_univocal_extension_non_scc<ResultWalk: From<Vec<Graph::EdgeIndex>>>(
&self,
graph: &Graph
) -> ResultWalkwhere
Graph: StaticGraph,
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.
sourcefn 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<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.
sourcefn compute_univocal_extension_with_original_offset_non_scc<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,
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.