pub enum ApproxReason {
ComboCapExceeded {
combos: usize,
cap: usize,
},
ContentionUnenumerated {
contended: usize,
combos: usize,
cap: usize,
},
PoolHeuristic {
lots: usize,
bound: usize,
},
}Expand description
Why a proposal is only APPROXIMATE (not a proven global minimum). Carried OUT of core (core has no logger) so the CLI can log the cap/why and the renderer can show the banner. Plain counts only → deterministic + serde/Eq-friendly (R0-C1/C3 fold).
Variants§
ComboCapExceeded
The cartesian product of per-group candidate lists exceeded MAX_COMBOS; the baseline-seeded
coordinate-descent fallback ran (a LOCAL optimum — disclosed, and never worse than baseline).
ContentionUnenumerated
≥1 contended same-wallet pool could not be JOINTLY enumerated within the bound; its disposals
fell back to per-disposal-independent generation (a cross-period reassignment optimum may be
missed — R0-C3). contended = number of disposals in the un-enumerated contention group(s).
PoolHeuristic
≥1 target disposal’s available pool exceeded LOT_ENUM_BOUND, so candidate_selections
returned a deterministic but INCOMPLETE heuristic SUBSET of that pool’s vertices (not the full
vertex enumeration) — the result over that pool is therefore NOT a proven global minimum
(R2-C1). Common in practice (weekly-DCA / active-trading pools with > 12 lots). lots = the
largest heuristic pool’s lot count; bound = LOT_ENUM_BOUND. Baseline-seeded, so delta ≤ 0
still holds — the disclosure corrects the false “proven optimum” claim, not the pick’s safety.
Trait Implementations§
Source§impl Clone for ApproxReason
impl Clone for ApproxReason
Source§fn clone(&self) -> ApproxReason
fn clone(&self) -> ApproxReason
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 ApproxReason
Source§impl Debug for ApproxReason
impl Debug for ApproxReason
impl Eq for ApproxReason
Source§impl PartialEq for ApproxReason
impl PartialEq for ApproxReason
impl StructuralPartialEq for ApproxReason
Auto Trait Implementations§
impl Freeze for ApproxReason
impl RefUnwindSafe for ApproxReason
impl Send for ApproxReason
impl Sync for ApproxReason
impl Unpin for ApproxReason
impl UnsafeUnpin for ApproxReason
impl UnwindSafe for ApproxReason
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
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<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§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.