pub enum RefineStop {
Settled,
IterationLimit,
DegreesOfFreedom,
WorseThanPlain,
}Expand description
Why refine_step_onto_bounds stopped.
Only RefineStop::Settled says the refinement finished: the
violation list emptied, which is the loop’s own termination
condition. Every other value says the step returned is the last one
a pass could achieve, and names what stopped it, so a caller can
tell a limit it may raise from one it cannot.
Variants§
Settled
Nothing is outside a bound and no bound multiplier is negative.
IterationLimit
max_iter passes were spent with the list still not empty. A
safety limit rather than a budget: a pass now takes every
violation it can see, so reaching this means the conditions kept
moving and the answer is whatever the last pass reached.
DegreesOfFreedom
A pass could not be solved or could not be achieved: the conditions have exhausted the problem’s degrees of freedom, and no step holds them all. No budget helps.
WorseThanPlain
The refinement ended further outside the bounds than the step it started from, so the unrefined step was returned and no rows are reported as constrained.
Implementations§
Trait Implementations§
Source§impl Clone for RefineStop
impl Clone for RefineStop
Source§fn clone(&self) -> RefineStop
fn clone(&self) -> RefineStop
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 RefineStop
Source§impl Debug for RefineStop
impl Debug for RefineStop
impl Eq for RefineStop
Source§impl PartialEq for RefineStop
impl PartialEq for RefineStop
impl StructuralPartialEq for RefineStop
Auto Trait Implementations§
impl Freeze for RefineStop
impl RefUnwindSafe for RefineStop
impl Send for RefineStop
impl Sync for RefineStop
impl Unpin for RefineStop
impl UnsafeUnpin for RefineStop
impl UnwindSafe for RefineStop
Blanket Implementations§
impl<T> Boilerplate 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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T, U> Imply<T> for U
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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> ⓘ
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> ⓘ
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 more