pub struct IterationBound { /* private fields */ }Expand description
Per-iteration hard bound for a damped retry loop: the net that makes
an unbounded loop {} safe. Tick it once at the top of EVERY pass —
accepted, rejected, or any continue path that reaches neither — and
ask IterationBound::exhausted_at wherever the loop’s exhaustion
question is posed. Created fresh per outer iteration.
Implementations§
Source§impl IterationBound
impl IterationBound
pub fn new(max: usize) -> Self
Sourcepub fn count_exhausted(&self) -> bool
pub fn count_exhausted(&self) -> bool
Has the pass count alone exhausted the budget?
Sourcepub fn exhausted_at(&self, damping: f64) -> bool
pub fn exhausted_at(&self, damping: f64) -> bool
The single exhaustion question: count OR damping window
(madsen_retry_exhausted, answered from owned state).
Sourcepub fn verdict_at(&self, damping: f64) -> LoopVerdict
pub fn verdict_at(&self, damping: f64) -> LoopVerdict
IterationBound::exhausted_at as a verdict, for consumers that
speak LoopVerdict.
Trait Implementations§
Source§impl Clone for IterationBound
impl Clone for IterationBound
Source§fn clone(&self) -> IterationBound
fn clone(&self) -> IterationBound
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for IterationBound
impl RefUnwindSafe for IterationBound
impl Send for IterationBound
impl Sync for IterationBound
impl Unpin for IterationBound
impl UnsafeUnpin for IterationBound
impl UnwindSafe for IterationBound
Blanket Implementations§
impl<T> Allocation for T
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T, U> Imply<T> for U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.