pub enum RefusalClass {
DegenerateArrangement {
open_edges: u32,
issues: u32,
},
NonIntegralGenus {
shells: u32,
euler: i64,
},
NonPositiveVolume,
TangentNodeSingularity,
InvalidResultTopology {
issues: u32,
},
ConservativeEmptyOverlap,
NonConvergence {
what: String,
},
UnsupportedGeometry {
what: String,
},
InvalidInput {
what: String,
},
Internal {
what: String,
},
}Expand description
The closed set of refusal classes. Dispatchers match on it exhaustively; adding a variant is a deliberate taxonomy change, never a message edit.
The first five are ARRANGEMENT DEGENERACIES — a coincident or near-tangent
carrier pair made the exact arrangement structurally inconsistent — and are
the only classes the boolean’s Simulation-of-Simplicity retry may act on
(RefusalClass::perturbation_eligible). The rest are honest refusals that
a perturbation cannot and must not “fix”.
Variants§
DegenerateArrangement
The assembled shell has open edges / invalid topology (the arrangement left a boundary unclosed).
NonIntegralGenus
Euler characteristic did not yield an integral genus.
NonPositiveVolume
The assembled solid’s signed volume is not positive.
TangentNodeSingularity
A singular / tangent-node surface intersection the marcher declines.
InvalidResultTopology
The FINAL validation of the result found topology issues.
ConservativeEmptyOverlap
The operation produced no boundary faces while contact / graze evidence exists — refusing rather than blessing an empty result.
NonConvergence
An iterative lane (edge conformance, an SSI march, a Newton polish) did not converge within its budget.
UnsupportedGeometry
A named deferral: geometry the kernel does not model yet.
InvalidInput
A caller error: bad ids, non-finite parameters, an unusable policy.
Internal
The long tail — an internal consistency check tripped. Curated batteries assert zero of these among their expected refusals.
Implementations§
Source§impl RefusalClass
impl RefusalClass
Sourcepub fn perturbation_eligible(&self) -> bool
pub fn perturbation_eligible(&self) -> bool
Whether the boolean’s perturbation retry may act on this refusal. The
set is pinned by refusal_retry_parity against the former substring
matcher; widening or narrowing it is a deliberate change.
Trait Implementations§
Source§impl Clone for RefusalClass
impl Clone for RefusalClass
Source§fn clone(&self) -> RefusalClass
fn clone(&self) -> RefusalClass
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more