Skip to main content

MaterialError

Enum MaterialError 

Source
#[non_exhaustive]
pub enum MaterialError {
Show 16 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, }, AuthoringInvalid { entity: &'static str, attribute: &'static str, value: String, }, AuthoringReferenceType { target: EntityId, expected: &'static str, actual: String, }, UnknownEntity { id: EntityId, }, DanglingReference { source_id: EntityId, target: EntityId, }, ReferenceType { source_id: EntityId, target: EntityId, expected: &'static str, actual: String, }, AmbiguousAssignment { object: EntityId, count: usize, }, AmbiguousType { object: EntityId, count: usize, }, MultipleSchemas { schemas: usize, }, UnsupportedSchema { schema: String, }, NotInSchema { entity: &'static str, id: EntityId, attribute: &'static str, schema: SchemaVersion, }, EntityNotInSchema { entity: &'static str, id: Option<EntityId>, schema: SchemaVersion, }, AuthoringNotInSchema { entity: &'static str, attribute: &'static str, schema: SchemaVersion, }, AuthoringRequired { entity: &'static str, attribute: &'static str, schema: SchemaVersion, },
}
Expand description

A malformed, ambiguous, or unresolved material projection.

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

A projection expected one entity type but the model holds another.

Fields

§expected: &'static str

The IFC entity type name that was expected.

§actual: String

The IFC entity type name actually found on the record.

§

MissingAttribute

A required attribute slot on the entity is absent (unset $).

Fields

§entity: &'static str

The IFC entity type name.

§id: EntityId

The id of the entity missing the attribute.

§attribute: &'static str

The name of the missing attribute.

§

InvalidValue

An attribute is present but its value violates a WHERE rule or type constraint.

Fields

§entity: &'static str

The IFC entity type name.

§id: EntityId

The id of the entity with the invalid attribute.

§attribute: &'static str

The name of the invalid attribute.

§value: String

A rendering of the offending value.

§

AuthoringInvalid

A value supplied to an authoring function cannot be written to the named entity attribute.

Fields

§entity: &'static str

The IFC entity type name being authored.

§attribute: &'static str

The name of the attribute that rejected the value.

§value: String

A rendering of the rejected value.

§

AuthoringReferenceType

An authoring-time reference points at an entity of the wrong type.

Fields

§target: EntityId

The id of the referenced entity.

§expected: &'static str

The IFC entity type name that was expected.

§actual: String

The IFC entity type name actually found at target.

§

UnknownEntity

A referenced entity id does not exist in the model.

Fields

§id: EntityId

The id that could not be resolved.

§

DanglingReference

A reference field points at an id absent from the model.

Fields

§source_id: EntityId

The id of the entity holding the reference.

§target: EntityId

The unresolved target id.

§

ReferenceType

A reference resolves to an entity, but of the wrong type.

Fields

§source_id: EntityId

The id of the entity holding the reference.

§target: EntityId

The id of the referenced entity.

§expected: &'static str

The IFC entity type name that was expected.

§actual: String

The IFC entity type name actually found at target.

§

AmbiguousAssignment

The object is directly related to more than one IfcMaterial via IfcRelAssociatesMaterial, so the single active material cannot be determined.

Fields

§object: EntityId

The id of the object with conflicting assignments.

§count: usize

The number of direct material assignments found.

§

AmbiguousType

The object is typed by more than one IfcTypeObject, so its inherited material cannot be determined unambiguously.

Fields

§object: EntityId

The id of the object with conflicting type relationships.

§count: usize

The number of IfcTypeObject relationships found.

§

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.

§

UnsupportedSchema

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

Fields

§schema: String

The FILE_SCHEMA token as written.

§

NotInSchema

The release the model is read against does not declare this attribute, for example Category on an IFC2X3 IfcMaterial or Name on an IFC2X3 IfcMaterialLayer. This is never reported as an unset (None) value, and no other slot is read in its place.

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 (IFC4).

§schema: SchemaVersion

The release the model is read against.

§

EntityNotInSchema

The release the model is bound to has no instantiable entity of this type, for example an IfcMaterialConstituentSet or IfcMaterialProfileSet in an IFC2X3 model, or the abstract IFC2X3 IfcMaterialProperties. Such a record is refused, not decoded with another release’s layout.

Fields

§entity: &'static str

The IFC entity type name.

§id: Option<EntityId>

The record, when one is being read; None when authoring.

§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 layer Name for an IFC2X3 model. The value is refused rather than 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.

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.

Trait Implementations§

Source§

impl Clone for MaterialError

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 MaterialError

Source§

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

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

impl Display for MaterialError

Source§

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

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

impl Error for MaterialError

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 MaterialError

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 MaterialError

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.