#[non_exhaustive]pub enum SchemaResolutionError {
MissingSchema,
MultipleSchemas {
schemas: usize,
},
UnsupportedSchema {
schema: String,
},
}Expand description
Why a model’s declared schema release could not be resolved.
Every read path in this crate binds to the IFC release the file’s
FILE_SCHEMA header declares (see crate::schema_of) rather than
assuming IFC4. A file that does not name a release this crate has
verified semantics for is refused, not silently read under the wrong
table: guessing IFC4 for an IFC2X3 file mis-classifies IfcZone as a
system and mis-reads IfcElectricalCircuit as not one (issue #52).
#[non_exhaustive]: new refusal reasons (e.g. a newly-verified release
gaining support) must be addable without breaking callers matching on
this type.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
MissingSchema
FILE_SCHEMA names no schema at all.
MultipleSchemas
FILE_SCHEMA names more than one schema; this crate reads only
single-schema files.
UnsupportedSchema
FILE_SCHEMA names a release this read does not resolve.
crate::schema_of and the system, port and flow readers resolve
IFC2X3 and IFC4. IFC4X3 is bundled in ifc-schema but its
distribution-system semantics have not been verified for them, so it
is refused there rather than defaulted to IFC4 – an IFC4X3 file
assumed to be IFC4 would misread IfcBuiltSystem and related
IFC4X3-only entities. The zone readers (crate::try_zones,
crate::long_name_of) resolve IFC4X3 too (#194), so they refuse
only a token with no bundled table.
Trait Implementations§
Source§impl Clone for SchemaResolutionError
impl Clone for SchemaResolutionError
Source§impl Debug for SchemaResolutionError
impl Debug for SchemaResolutionError
Source§impl Display for SchemaResolutionError
impl Display for SchemaResolutionError
impl Eq for SchemaResolutionError
Source§impl Error for SchemaResolutionError
impl Error for SchemaResolutionError
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()