pub struct PersistentBfsConvergence {
pub changed: u32,
pub converged: bool,
pub stop_iter: u32,
}Expand description
Convergence outcome of one persistent-BFS CPU reference run.
The changed flag alone (1 if any step added new nodes) cannot tell a
caller whether the fixpoint was actually reached or the loop merely ran
out of max_iters while still growing. This struct separates the two so a
consumer can enforce a loud non-convergence policy: a run that exhausts
max_iters while still adding nodes returns converged = false and an
under-approximated frontier, which the caller can reject instead of
silently trusting a partial closure.
Fields§
§changed: u32Sticky flag: 1 if any step added new nodes, else 0.
converged: booltrue if a step added nothing (the fixpoint was reached) before
max_iters was exhausted; false if the loop ran all max_iters
steps while still adding nodes, in which case the frontier is an
under-approximation of the true closure.
stop_iter: u32Number of traversal steps actually run: the step at which the loop
stopped. Equals max_iters exactly when converged is false.
Trait Implementations§
Source§impl Clone for PersistentBfsConvergence
impl Clone for PersistentBfsConvergence
Source§fn clone(&self) -> PersistentBfsConvergence
fn clone(&self) -> PersistentBfsConvergence
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for PersistentBfsConvergence
Source§impl Debug for PersistentBfsConvergence
impl Debug for PersistentBfsConvergence
impl Eq for PersistentBfsConvergence
Source§impl PartialEq for PersistentBfsConvergence
impl PartialEq for PersistentBfsConvergence
impl StructuralPartialEq for PersistentBfsConvergence
Auto Trait Implementations§
impl Freeze for PersistentBfsConvergence
impl RefUnwindSafe for PersistentBfsConvergence
impl Send for PersistentBfsConvergence
impl Sync for PersistentBfsConvergence
impl Unpin for PersistentBfsConvergence
impl UnsafeUnpin for PersistentBfsConvergence
impl UnwindSafe for PersistentBfsConvergence
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.