ifc_xml/profile.rs
1//! Supported ifcXML release profiles.
2
3/// A release-specific ifcXML namespace/profile contract.
4#[derive(Debug, Clone, Copy, PartialEq, Eq)]
5#[non_exhaustive]
6pub enum XmlProfile {
7 /// IFC4 ADD2 TC1, as declared by the bundled official XSD.
8 Ifc4Add2Tc1,
9}
10
11impl XmlProfile {
12 /// The exact XML namespace declared by the release XSD.
13 #[must_use]
14 pub const fn namespace(self) -> &'static str {
15 match self {
16 Self::Ifc4Add2Tc1 => {
17 "https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/XML"
18 }
19 }
20 }
21
22 /// The canonical IFC schema token carried by this codec's root metadata.
23 #[must_use]
24 pub const fn schema_token(self) -> &'static str {
25 match self {
26 Self::Ifc4Add2Tc1 => "IFC4",
27 }
28 }
29}