Skip to main content

ClassificationError

Enum ClassificationError 

Source
#[non_exhaustive]
pub enum ClassificationError {
Show 19 variants WrongEntityType { expected: &'static str, actual: String, }, MissingAttribute { entity: &'static str, id: EntityId, attribute: &'static str, }, InvalidValue { entity: &'static str, id: EntityId, attribute: &'static str, value: String, }, UnknownEntity { id: EntityId, }, DanglingReference { entity: &'static str, id: EntityId, attribute: &'static str, target: EntityId, }, ReferenceType { entity: &'static str, id: EntityId, attribute: &'static str, target: EntityId, expected: &'static str, actual: String, }, Cycle { path: Vec<EntityId>, }, BudgetExceeded { max_depth: usize, max_nodes: usize, }, AmbiguousType { object: EntityId, count: usize, }, AuthoringInvalid { entity: &'static str, attribute: &'static str, value: String, }, AuthoringReferenceType { target: EntityId, expected: &'static str, actual: String, }, MultipleSchemas { schemas: usize, }, NotInSchema { entity: &'static str, id: EntityId, attribute: &'static str, schema: SchemaVersion, }, StructuredValue { entity: &'static str, id: EntityId, attribute: &'static str, target: EntityId, }, UnsupportedSchema { schema: String, }, EntityNotInSchema { entity: &'static str, schema: SchemaVersion, }, AuthoringNotInSchema { entity: &'static str, attribute: &'static str, schema: SchemaVersion, }, AuthoringRequired { entity: &'static str, attribute: &'static str, schema: SchemaVersion, }, AuthoringValueType { entity: &'static str, attribute: &'static str, declared: &'static str, schema: SchemaVersion, },
}
Expand description

Failure decoding, cross-checking, or authoring classification/document/library records.

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.
§

WrongEntityType

Entity did not have the expected IFC type.

Fields

§expected: &'static str

IFC type name expected at this position.

§actual: String

IFC type name actually found.

§

MissingAttribute

A required attribute was unset ($ or *) or absent.

Fields

§entity: &'static str

IFC entity type of the offending instance.

§id: EntityId

Id of the offending instance.

§attribute: &'static str

Name of the missing attribute.

§

InvalidValue

An attribute was present but failed to decode as its expected shape.

Fields

§entity: &'static str

IFC entity type of the offending instance.

§id: EntityId

Id of the offending instance.

§attribute: &'static str

Name of the invalid attribute.

§value: String

Debug rendering of the offending value.

§

UnknownEntity

A referenced entity id does not exist in the model.

Fields

§id: EntityId

Id that could not be resolved.

§

DanglingReference

An attribute reference points at an id that is not present in the model.

Fields

§entity: &'static str

IFC entity type holding the dangling reference.

§id: EntityId

Id of the entity holding the dangling reference.

§attribute: &'static str

Name of the attribute holding the dangling reference.

§target: EntityId

Id that could not be resolved.

§

ReferenceType

An attribute reference resolves but the target entity has the wrong type for its select.

Fields

§entity: &'static str

IFC entity type holding the mistyped reference.

§id: EntityId

Id of the entity holding the mistyped reference.

§attribute: &'static str

Name of the attribute holding the mistyped reference.

§target: EntityId

Id of the mistyped target.

§expected: &'static str

Select or type name the target was expected to satisfy.

§actual: String

IFC type name the target actually has.

§

Cycle

Following ReferencedSource links revisited an already-seen entity.

Fields

§path: Vec<EntityId>

Entity ids on the cycle, in traversal order.

§

BudgetExceeded

Hierarchy traversal exceeded the caller-supplied node or depth budget.

Fields

§max_depth: usize

Maximum edge depth allowed.

§max_nodes: usize

Maximum number of nodes allowed.

§

AmbiguousType

An occurrence object is related to more than one IfcRelDefinesByType type.

Fields

§object: EntityId

The occurrence object with the ambiguous type assignment.

§count: usize

Number of types the object was found related to.

§

AuthoringInvalid

A draft value failed schema validation before staging.

Fields

§entity: &'static str

IFC entity type being authored.

§attribute: &'static str

Name of the offending attribute.

§value: String

Description of why the value is invalid.

§

AuthoringReferenceType

A draft reference resolves to a staged or committed entity of the wrong type.

Fields

§target: EntityId

Id of the mistyped reference target.

§expected: &'static str

Select or type name the target was expected to satisfy.

§actual: String

IFC type name the target actually has.

§

MultipleSchemas

The header declares several schemas, so no single release can be bound to read or write the model against.

Fields

§schemas: usize

Number of FILE_SCHEMA declarations.

§

NotInSchema

The release the model is read against does not define this attribute or record, for example Description on an IFC2X3 IfcClassification or any IfcExternalReferenceRelationship in an IFC2X3 model. This is never reported as an unset (None) value.

Fields

§entity: &'static str

IFC entity type of the instance.

§id: EntityId

Id of the instance.

§attribute: &'static str

Attribute name, as this crate’s accessor names it.

§schema: SchemaVersion

The release the model is read against.

§

StructuredValue

A text accessor met an attribute the bound release types as an entity record, such as an IFC2X3 IfcCalendarDate edition date. The value is valid; read it structurally through target.

Fields

§entity: &'static str

IFC entity type of the instance.

§id: EntityId

Id of the instance.

§attribute: &'static str

Attribute name.

§target: EntityId

The entity record holding the value.

§

UnsupportedSchema

The header declares one schema this crate has no bundled table for, so no slot position can be trusted. Never read as IFC4.

Fields

§schema: String

The FILE_SCHEMA token as written.

§

EntityNotInSchema

An authoring call would write a record type the model’s release cannot instantiate, such as an IfcExternalReferenceRelationship into an IFC2X3 model.

Fields

§entity: &'static str

The IFC entity type name.

§schema: SchemaVersion

The release the model is bound to.

§

AuthoringNotInSchema

An authoring call supplied a value for an attribute the model’s release does not declare, such as a Description for an IFC2X3 IfcClassification. The value is refused, never silently dropped.

Fields

§entity: &'static str

The IFC entity type name being authored.

§attribute: &'static str

The attribute, as this crate names it (IFC4).

§schema: SchemaVersion

The release the model is bound to.

§

AuthoringRequired

The model’s release requires an attribute the authoring call leaves unset, such as the IFC2X3 IfcRoot.OwnerHistory or the IFC2X3 IfcClassification.Source.

Fields

§entity: &'static str

The IFC entity type name being authored.

§attribute: &'static str

The required attribute, as the release names it.

§schema: SchemaVersion

The release the model is bound to.

§

AuthoringValueType

An authoring call supplied text for an attribute the model’s release types as an entity record, such as an IFC2X3 IfcCalendarDate EditionDate. The text is refused rather than written into a slot that cannot hold it.

Fields

§entity: &'static str

The IFC entity type name being authored.

§attribute: &'static str

The attribute, as this crate names it (IFC4).

§declared: &'static str

The type the release declares for the attribute.

§schema: SchemaVersion

The release the model is bound to.

Trait Implementations§

Source§

impl Clone for ClassificationError

Source§

fn clone(&self) -> Self

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 ClassificationError

Source§

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

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

impl Display for ClassificationError

Source§

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

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

impl Error for ClassificationError

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 ClassificationError

Source§

fn eq(&self, other: &Self) -> 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 ClassificationError

Auto Trait Implementations§

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> 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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.