#[non_exhaustive]pub enum AlignmentError {
Show 16 variants
MissingEntity {
entity: EntityId,
},
WrongType {
entity: EntityId,
expected: &'static str,
actual: String,
},
MissingAttribute {
entity: EntityId,
index: usize,
name: &'static str,
},
InvalidAttribute {
entity: EntityId,
index: usize,
name: &'static str,
},
InvalidUnits {
detail: &'static str,
},
InvalidSegment {
entity: EntityId,
detail: &'static str,
},
Unsupported {
entity: EntityId,
type_name: String,
detail: &'static str,
},
Graph {
detail: String,
},
MissingSchema,
AmbiguousSchema {
tokens: Vec<String>,
},
UnsupportedSchema {
token: String,
},
SemanticViolation {
entity: Option<EntityId>,
rule: &'static str,
},
InvalidAuthoredValue {
type_name: &'static str,
attribute: &'static str,
detail: String,
},
ProfileDiscontinuity {
entity: EntityId,
previous: EntityId,
seam: ProfileSeam,
expected: f64,
actual: f64,
},
DanglingReference {
entity: EntityId,
attribute: &'static str,
target: EntityId,
},
BudgetExceeded {
max_depth: usize,
max_nodes: usize,
},
}Expand description
Why an IFC alignment entity could not be read or lowered.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
MissingEntity
A referenced entity id is not present in the model.
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
InvalidAttribute
An attribute was present but held the wrong kind of value.
Fields
InvalidUnits
The project’s unit assignment does not resolve to usable lengths or angles.
InvalidSegment
A horizontal, vertical, or cant segment carries internally inconsistent data.
Unsupported
A segment type or configuration this crate deliberately does not lower.
Covers segment kinds that are legal IFC but lack the data they need in
this call (e.g. a VIENNESEBEND lowered without its IfcAlignmentCant
layout, its GravityCenterLineHeight, or the station a chained layout
supplies) or that have no closed-form neutral curve here (e.g.
CUBIC).
Fields
Graph
The assembled neutral alignment graph violates a structural invariant.
MissingSchema
The model header declares no FILE_SCHEMA token.
AmbiguousSchema
More than one FILE_SCHEMA token was declared.
UnsupportedSchema
The declared schema is not one this crate can interpret.
Alignment entities (IfcAlignment*) were introduced in IFC4X3; IFC2X3
and IFC4 ADD2 TC1 do not declare them at all, so there is no version
dispatch here the way ifc-resource/ifc-structural have one –
exactly one profile is authoritative and anything else is refused.
SemanticViolation
A relationship or nesting structure violates a stated invariant.
Fields
InvalidAuthoredValue
An authored value was rejected before anything was staged (ADR 0011).
Distinct from Self::InvalidSegment, which describes a segment that
already exists in a file. Here there is no entity yet and therefore no
id to report: the caller passed a value that could not be written.
Fields
ProfileDiscontinuity
Two consecutive vertical segments disagree where they meet.
The segment at entity restates a start height or start gradient
that differs from where previous ends, beyond a magnitude-scaled
tolerance. A step in height or a kink in grade is refused rather than
joined, because joining it would shift every downstream height.
Fields
seam: ProfileSeamWhich quantity is discontinuous.
DanglingReference
A dangling reference: the target id is not present in the model.
Fields
BudgetExceeded
Graph traversal exceeded an explicit depth or node-count bound.
Trait Implementations§
Source§impl Clone for AlignmentError
impl Clone for AlignmentError
Source§impl Debug for AlignmentError
impl Debug for AlignmentError
Source§impl Display for AlignmentError
impl Display for AlignmentError
Source§impl Error for AlignmentError
impl Error for AlignmentError
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()