#[non_exhaustive]pub enum OgeomError {
Construction(Cause),
Domain(Cause),
Range(Cause),
Dimension(Cause),
NullObject(Cause),
Dangling(Cause),
Numeric(Cause),
NotDone(Cause),
Invariant(Cause),
Cancelled,
Unimplemented(Cause),
}Expand description
A kernel failure.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Construction(Cause)
Arguments cannot produce the requested entity: three collinear points for a circle, a zero-length direction, a self-intersecting wire.
Domain(Cause)
An argument lies outside the domain the operation is defined on.
Range(Cause)
A parameter or index lies outside its valid range.
Dimension(Cause)
Collections or geometries that had to agree in size or dimension did not.
NullObject(Cause)
An operation was handed a null or empty shape where one was required.
Dangling(Cause)
A key did not resolve: most often a stale arena key, or a shape used with an arena that does not own it.
Numeric(Cause)
A numerical method failed: no convergence, a singular system, a step that could not be taken.
NotDone(Cause)
The algorithm ran but could not produce a result. Distinct from
OgeomError::Construction: the inputs were legitimate and the failure is
the algorithm’s.
Invariant(Cause)
The result exists but violates an invariant from docs/DATA_MODEL.md:
tolerance containment, orientation consistency, edge representation
agreement. Never returned silently. Producing invalid topology is worse
than failing.
Cancelled
Cancelled through a progress sink.
Unimplemented(Cause)
Reached a path that exists but has not been implemented yet.
Implementations§
Source§impl OgeomError
impl OgeomError
Sourcepub const fn is_tolerance_sensitive(&self) -> bool
pub const fn is_tolerance_sensitive(&self) -> bool
Whether retrying with a looser tolerance could plausibly succeed.
Used by the fuzzy-tolerance escape hatch: numerical failures are worth retrying, malformed input is not.
Trait Implementations§
Source§impl Clone for OgeomError
impl Clone for OgeomError
Source§impl Debug for OgeomError
impl Debug for OgeomError
Source§impl Display for OgeomError
impl Display for OgeomError
impl Eq for OgeomError
Source§impl Error for OgeomError
impl Error for OgeomError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl PartialEq for OgeomError
impl PartialEq for OgeomError
impl StructuralPartialEq for OgeomError
Auto Trait Implementations§
impl Freeze for OgeomError
impl RefUnwindSafe for OgeomError
impl Send for OgeomError
impl Sync for OgeomError
impl Unpin for OgeomError
impl UnsafeUnpin for OgeomError
impl UnwindSafe for OgeomError
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,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.