#[non_exhaustive]pub enum TabularIssue {
Arity {
entity: EntityId,
type_name: &'static str,
expected: usize,
found: usize,
},
Missing {
entity: EntityId,
attribute: &'static str,
},
Malformed {
entity: EntityId,
attribute: &'static str,
found: String,
},
EmptyList {
entity: EntityId,
attribute: &'static str,
},
Dangling {
entity: EntityId,
attribute: &'static str,
target: EntityId,
},
WrongReferenceType {
entity: EntityId,
attribute: &'static str,
target: EntityId,
expected: &'static str,
actual: String,
},
RaggedRow {
table: EntityId,
row: EntityId,
index: usize,
expected: usize,
found: usize,
},
TooManyHeadings {
table: EntityId,
found: usize,
},
}Expand description
One defect found while reading a table or time series.
A read never drops what it cannot decode: a malformed slot, a dangling
reference, or a violated WHERE rule becomes an issue on the returned
view, and whatever did decode is still returned beside it. entity is
always the record the defect sits on, which may be a row, column or
value record rather than the container that was asked for.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Arity
The record’s slot count differs from its schema declaration.
Slots are still read by position, so a short record reports its missing required attributes as well.
Fields
Missing
A required attribute is null or absent.
Malformed
A slot holds a value its declaration does not admit.
Fields
EmptyList
A LIST [1:?] attribute is present but empty.
Dangling
A reference names a record the model does not hold.
Fields
WrongReferenceType
A reference names a record of the wrong type.
Fields
RaggedRow
IfcTable.WR1: a row’s cell count differs from the first row’s.
Fields
TooManyHeadings
IfcTable.WR2: more than one row has IsHeading TRUE.