Skip to main content

Error

Enum Error 

Source
#[non_exhaustive]
pub enum Error {
Show 20 variants NonFiniteCoordinate { axis: &'static str, value: f64, }, TooFewElements { geometry: &'static str, minimum: usize, spec: Option<&'static str>, id: Option<Id>, detail: Option<String>, }, InvalidElementCount { geometry: &'static str, expected: usize, actual: usize, spec: Option<&'static str>, }, IdenticalPositions { first: DirectPosition, second: DirectPosition, }, AdjacentDuplicatePositions { index: usize, position: DirectPosition, }, RepeatedClosingVertex { position: DirectPosition, }, InvalidEnvelopeBounds { axis: &'static str, lower: f64, upper: f64, }, NotSurfaceOrVolume { non_zero_extents: u8, }, NotASurface { non_zero_extents: u8, }, NotAVolume { non_zero_extents: u8, }, EmptyId, TriangulationFailed { context: String, }, MissingExteriorRing, UnresolvedRingReference { href: Option<String>, }, UnresolvedSurfaceReference { href: Option<String>, }, UnresolvedCurveReference { href: Option<String>, }, MissingExteriorShell, UnresolvedShellReference { href: Option<String>, }, TriangulationNotSupported { geometry: &'static str, }, InvalidAttributeValue { attribute: &'static str, value: String, },
}
Expand description

Errors returned by egml-core operations.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

NonFiniteCoordinate

Returned when a floating-point coordinate is not finite (NaN or ±infinity).

axis names the offending component ("x", "y", or "z"); value is the actual non-finite number that was supplied.

Fields

§axis: &'static str
§value: f64
§

TooFewElements

Returned when a collection has fewer elements than the minimum required by the GML geometry constraint.

Optional fields carry progressively more context: spec cites the ISO clause, id names the offending GML object, and detail gives a human-readable description of the actual content that was supplied.

Fields

§geometry: &'static str
§minimum: usize
§spec: Option<&'static str>
§detail: Option<String>
§

InvalidElementCount

Returned when a collection has a number of elements other than the exact count required by the GML geometry constraint.

expected is the required count; actual is what was supplied. spec optionally cites the ISO/OGC clause that mandates the count.

Fields

§geometry: &'static str
§expected: usize
§actual: usize
§spec: Option<&'static str>
§

IdenticalPositions

Returned when two positions that must be distinct are identical.

Applies to Triangle vertices (OGC 07-036 §10.5.12.5).

§

AdjacentDuplicatePositions

Returned when adjacent positions in a sequence are equal.

index is the zero-based index of the first position in the duplicate pair; position is its value. Applies to LinearRing (OGC 07-036 §10.5.8) and LineString (OGC 07-036 §10.4.4).

Fields

§index: usize
§

RepeatedClosingVertex

Returned when the first and last position of a ring are equal.

position is the repeated vertex. A gml:LinearRing is implicitly closed and must not include an explicit closing vertex (OGC 07-036 §10.5.8).

Fields

§

InvalidEnvelopeBounds

Returned when an Envelope is constructed with a lower corner that strictly exceeds the upper corner along axis.

lower and upper are the actual conflicting coordinate values. OGC 07-036 §10.1.4.6 requires lowerCorner ≤ upperCorner in every component.

Fields

§axis: &'static str
§lower: f64
§upper: f64
§

NotSurfaceOrVolume

Returned when Envelope::to_triangulated_surface is called on an envelope that is neither a surface nor a volume.

non_zero_extents is the number of axes with non-zero extent (0 or 1).

Fields

§non_zero_extents: u8
§

NotASurface

Returned when Envelope::to_polygon is called on an envelope that does not have exactly two non-zero extents.

non_zero_extents is the actual number of axes with non-zero extent.

Fields

§non_zero_extents: u8
§

NotAVolume

Returned when Envelope::to_solid is called on an envelope that does not have all three extents non-zero.

non_zero_extents is the actual number of axes with non-zero extent.

Fields

§non_zero_extents: u8
§

EmptyId

Returned when an empty string is used to construct a Id.

§

TriangulationFailed

Returned when the earcut polygon triangulation algorithm produces no triangles.

context provides additional information about which polygon or patch could not be decomposed.

Fields

§context: String
§

MissingExteriorRing

Returned when an operation requires an exterior ring but the polygon has none.

§

UnresolvedRingReference

Returned when a ring property carries only an xlink:href reference and the referenced geometry object has not been resolved into an inline object.

href is the reference value if one was present, or None if the property has neither an inline object nor a reference.

Fields

§

UnresolvedSurfaceReference

Returned when a surface property carries only an xlink:href reference and the referenced geometry object has not been resolved into an inline object.

href is the reference value if one was present, or None if the property has neither an inline object nor a reference.

Fields

§

UnresolvedCurveReference

Returned when a curve property carries only an xlink:href reference and the referenced geometry object has not been resolved into an inline object.

href is the reference value if one was present, or None if the property has neither an inline object nor a reference.

Fields

§

MissingExteriorShell

Returned when an operation requires an exterior shell but the solid has none.

§

UnresolvedShellReference

Returned when a shell property carries only an xlink:href reference and the referenced geometry object has not been resolved into an inline object.

href is the reference value if one was present, or None if the property has neither an inline object nor a reference.

Fields

§

TriangulationNotSupported

Returned when triangulate is called on a geometry type that cannot produce a surface (e.g. Point, MultiCurve).

geometry names the concrete variant that was encountered.

Fields

§geometry: &'static str
§

InvalidAttributeValue

Returned when an attribute held a value that could not be parsed into its expected type (e.g. an xlink:show/xlink:actuate value outside the enumeration defined by the XLink specification).

attribute names the attribute (e.g. "xlink:show"); value is the raw string that was supplied.

Fields

§attribute: &'static str
§value: String

Trait Implementations§

Source§

impl Clone for Error

Source§

fn clone(&self) -> Error

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Error

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for Error

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Error for Error

1.30.0 · Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl PartialEq for Error

Source§

fn eq(&self, other: &Error) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Error

Auto Trait Implementations§

§

impl Freeze for Error

§

impl RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnsafeUnpin for Error

§

impl UnwindSafe for Error

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_sync(self: Box<T>) -> Box<dyn Any + Sync + Send>

Converts Box<Trait> (where Trait: DowncastSync) to Box<dyn Any + Send + Sync>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Converts Arc<Trait> (where Trait: DowncastSync) to Arc<Any>, which can then be downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,

Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

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

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

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

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.