ifc_validate/
type_check.rs1mod aggregate;
14mod defined;
15mod entity;
16mod enumeration;
17mod scalar;
18mod select;
19mod typed;
20
21pub(crate) use aggregate::{aliased_aggregate, element_type};
22pub use defined::{check as check_value, Mismatch};
23pub use entity::{abstract_instances, attribute_types, unknown_entity_types};
24pub(crate) use scalar::describe_value;
25pub use scalar::Primitive;
26
27use ifc_model::Model;
28use ifc_schema::Schema;
29
30use crate::report::Report;
31use crate::where_rule::Budget;
32
33pub fn check(model: &Model, schema: &Schema, budget: Budget, report: &mut Report) {
35 unknown_entity_types(model, schema, report);
36 abstract_instances(model, schema, report);
37 attribute_types(model, schema, report);
38 if report.findings().len() >= budget.max_findings {
39 report.mark_truncated();
40 }
41}