Skip to main content

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}