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]
&mut self,
r_plus: &IncrementalSubgraph<'_, Graph>,
r_minus: &IncrementalSubgraph<'_, Graph>
)
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]
&mut self,
r_plus: &IncrementalSubgraph<'_, Graph>,
r_minus: &IncrementalSubgraph<'_, Graph>
)
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]
&mut self,
r_plus: &IncrementalSubgraph<'_, Graph>,
r_minus: &IncrementalSubgraph<'_, Graph>
)
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.
Implementors
impl<'a, Graph: GraphBase, SafetyTracker1: IncrementalSafetyTracker<'a, Graph>, SafetyTracker2: IncrementalSafetyTracker<'a, Graph>> IncrementalSafetyTracker<'a, Graph> for ConjunctiveSafetyTracker<SafetyTracker1, SafetyTracker2>
[src]
fn new_with_empty_subgraph(graph: &'a Graph) -> Self
[src]
fn clear(&mut self)
[src]
fn reset(
&mut self,
r_plus: &IncrementalSubgraph<'_, Graph>,
r_minus: &IncrementalSubgraph<'_, Graph>
)
[src]
&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>
)
[src]
&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>
)
[src]
&mut self,
r_plus: &IncrementalSubgraph<'_, Graph>,
r_minus: &IncrementalSubgraph<'_, Graph>
)
fn is_safe(&self, is_forward_univocal: bool, is_backward_univocal: bool) -> bool
[src]
fn does_safety_equal_bridge_like() -> bool
[src]
impl<'a, Graph: ImmutableGraphContainer> IncrementalSafetyTracker<'a, Graph> for NodeCentricComponentTracker
[src]
fn new_with_empty_subgraph(_graph: &'a Graph) -> Self
[src]
fn clear(&mut self)
[src]
fn reset(
&mut self,
r_plus: &IncrementalSubgraph<'_, Graph>,
r_minus: &IncrementalSubgraph<'_, Graph>
)
[src]
&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>
)
[src]
&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>
)
[src]
&mut self,
r_plus: &IncrementalSubgraph<'_, Graph>,
r_minus: &IncrementalSubgraph<'_, Graph>
)
fn is_safe(&self, is_forward_univocal: bool, is_backward_univocal: bool) -> bool
[src]
fn does_safety_equal_bridge_like() -> bool
[src]
impl<'a, Graph: StaticGraph> IncrementalSafetyTracker<'a, Graph> for VaporIsPathTracker<'a, Graph>
[src]
fn new_with_empty_subgraph(graph: &'a Graph) -> Self
[src]
fn clear(&mut self)
[src]
fn reset(
&mut self,
r_plus: &IncrementalSubgraph<'_, Graph>,
r_minus: &IncrementalSubgraph<'_, Graph>
)
[src]
&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>
)
[src]
&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>
)
[src]
&mut self,
_r_plus: &IncrementalSubgraph<'_, Graph>,
r_minus: &IncrementalSubgraph<'_, Graph>
)
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.