#[non_exhaustive]pub enum GeorefError {
Show 16 variants
MissingEntity {
referrer: EntityId,
missing: EntityId,
},
WrongType {
entity: EntityId,
expected: &'static str,
actual: String,
},
MissingAttribute {
entity: EntityId,
index: usize,
name: &'static str,
},
AuthoringInvalid {
entity: &'static str,
attribute: &'static str,
value: String,
},
InvalidAttribute {
entity: EntityId,
index: usize,
name: &'static str,
},
UnsupportedOperation {
entity: EntityId,
actual: String,
},
DegenerateAxis {
entity: EntityId,
},
InvalidScale {
entity: EntityId,
value: f64,
},
InvalidUnit {
entity: EntityId,
detail: &'static str,
},
UnitCycle {
entity: EntityId,
},
MissingSchema,
AmbiguousSchema {
tokens: Vec<String>,
},
UnsupportedSchema {
token: String,
},
MissingProjectFrame,
DegenerateProjectFrame,
NonFiniteDirection {
entity: EntityId,
},
}Expand description
Why a project-to-map operation could not be resolved losslessly.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
MissingEntity
An entity referenced another that the model does not contain.
Fields
WrongType
An entity was not the IFC type the referencing slot requires.
Fields
MissingAttribute
A mandatory attribute was absent, so the value cannot be inferred.
Fields
AuthoringInvalid
A value supplied to an authoring helper was not acceptable.
Distinct from GeorefError::InvalidAttribute, which names an
entity already in the model: at authoring time there is no id
yet, so the entity is named by type.
Fields
InvalidAttribute
An attribute was present but held the wrong kind of value.
Fields
UnsupportedOperation
The coordinate operation is a subtype this crate does not resolve.
Refused rather than approximated: a non-projected operation would silently produce wrong map coordinates.
Fields
DegenerateAxis
The map x axis is zero-length or non-finite, so no rotation exists.
InvalidScale
The map scale is zero, negative, or non-finite.
InvalidUnit
The map unit is not a length unit this crate can reduce to metres.
UnitCycle
A unit conversion chain revisited an entity or ran deeper than 16.
Both guards exist: a repeated id catches a true loop, the depth cap catches an unbounded chain of distinct units.
MissingSchema
The model header declares no FILE_SCHEMA token.
AmbiguousSchema
The header declares more than one schema, so the profile is ambiguous.
Refused rather than picking one: the choice changes which coordinate operations are legal.
UnsupportedSchema
The declared schema has no projected georeferencing profile here.
IFC2X3 declares no georeferencing entities at all; other tokens may be unrecognised.
MissingProjectFrame
Chaining onto a project frame requires that frame to be supplied.
DegenerateProjectFrame
The supplied project frame is not an invertible rigid transform.
NonFiniteDirection
A direction was zero-length or non-finite, so it cannot be normalised.
Trait Implementations§
Source§impl Clone for GeorefError
impl Clone for GeorefError
Source§impl Debug for GeorefError
impl Debug for GeorefError
Source§impl Display for GeorefError
impl Display for GeorefError
Source§impl Error for GeorefError
impl Error for GeorefError
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()