Trait omnitigs::hydrostructure::incremental_hydrostructure::IncrementalSafetyTracker[][src]

pub trait IncrementalSafetyTracker<'a, Graph: GraphBase> {
    fn new_with_empty_subgraph(graph: &'a Graph) -> Self;
fn clear(&mut self);
fn reset(
        &mut self,
        r_plus: &IncrementalSubgraph<'_, Graph>,
        r_minus: &IncrementalSubgraph<'_, Graph>
    );
fn add_incremental_subgraph_step(
        &mut self,
        r_plus: &IncrementalSubgraph<'_, Graph>,
        r_minus: &IncrementalSubgraph<'_, Graph>
    );
fn remove_incremental_subgraph_step(
        &mut self,
        r_plus: &IncrementalSubgraph<'_, Graph>,
        r_minus: &IncrementalSubgraph<'_, Graph>
    );
fn is_safe(
        &self,
        is_forward_univocal: bool,
        is_backward_univocal: bool
    ) -> bool;
fn does_safety_equal_bridge_like() -> bool; }

An incremental safety tracker for the incremental hydrostructure.

Required methods

fn new_with_empty_subgraph(graph: &'a Graph) -> Self[src]

Creates a new instance keeping the hydrostructure components empty.

fn clear(&mut self)[src]

Remove all nodes and edges from the hydrostructure components.

fn reset(
    &mut self,
    r_plus: &IncrementalSubgraph<'_, Graph>,
    r_minus: &IncrementalSubgraph<'_, Graph>
)
[src]

Reset the state of the safety tracker to the current state of the hydrostructure.

fn add_incremental_subgraph_step(
    &mut self,
    r_plus: &IncrementalSubgraph<'_, Graph>,
    r_minus: &IncrementalSubgraph<'_, Graph>
)
[src]

Add the nodes and edges from the current step of r_plus.

fn remove_incremental_subgraph_step(
    &mut self,
    r_plus: &IncrementalSubgraph<'_, Graph>,
    r_minus: &IncrementalSubgraph<'_, Graph>
)
[src]

Remove the nodes and edges from the current step of r_minus.

fn is_safe(&self, is_forward_univocal: bool, is_backward_univocal: bool) -> bool[src]

Returns true if the safety tracker indicates that the current subwalk is safe.

fn does_safety_equal_bridge_like() -> bool[src]

May return true if the is_safe function returns true if and only if a subwalk is bridge-like. It is not required to return true for all types, but for types where it does return true the equivalence above must hold.

Loading content...

Implementors

impl<'a, Graph: GraphBase, SafetyTracker1: IncrementalSafetyTracker<'a, Graph>, SafetyTracker2: IncrementalSafetyTracker<'a, Graph>> IncrementalSafetyTracker<'a, Graph> for ConjunctiveSafetyTracker<SafetyTracker1, SafetyTracker2>[src]

impl<'a, Graph: ImmutableGraphContainer> IncrementalSafetyTracker<'a, Graph> for NodeCentricComponentTracker[src]

impl<'a, Graph: StaticGraph> IncrementalSafetyTracker<'a, Graph> for VaporIsPathTracker<'a, Graph>[src]

fn is_safe(&self, is_forward_univocal: bool, is_backward_univocal: bool) -> bool[src]

Returns true if the subgraph is a path. Empty graphs are not counted as paths.

Loading content...