openehr-lang 0.0.2

openEHR LANG 1.0.0: BMM/P_BMM object model (generated from BMM) plus a hand-written ODIN instance parser (the `odin` module — deliberately off the codegen path).
Documentation
// @generated by openehr-codegen from BMM (`BMM_ENUMERATION_STRING`) — DO NOT EDIT.

//! The openEHR `BMM_ENUMERATION_STRING` spec class, generated from the vendored BMM
//! meta-model.

#![expect(
    clippy::disallowed_types,
    reason = "adjudicated free-form JSON slots: serde_json::Value is workspace-banned (#1694); a generated carrier exists only where the spec leaves the slot open, and each adjudicated field's NOTE names its citation"
)]
use crate::bmm::core::bmm_class::BmmClass;
use crate::bmm::core::bmm_package::BmmPackage;
use crate::bmm::core::bmm_property::BmmProperty;
use crate::bmm::core::bmm_type::BmmType;

/// String-based enumeration type.
#[doc(alias = "BMM_ENUMERATION_STRING")]
#[derive(Debug, Clone, PartialEq)]
pub struct BmmEnumerationString {
    // inherited: BMM_MODEL_ELEMENT
    /// Optional documentation of this element.
    pub documentation: Option<String>,

    // inherited: BMM_CLASS
    /// Name of this class. Note that unlike UML, names of classes are just the root name, even if the class is generic.
    pub name: String,
    /// List of immediate inheritance parents.
    pub ancestors: Option<std::collections::BTreeMap<String, BmmClass>>,
    /// Package this class belongs to.
    pub package: BmmPackage,
    /// List of attributes defined in this class.
    pub properties: Option<std::collections::BTreeMap<String, BmmProperty<BmmType>>>,
    /// Reference to original source schema defining this class. Useful for UI tools to determine which original schema file to open for a given class for manual editing.
    pub source_schema_id: String,
    /// List of immediate inheritance descendants.
    pub immediate_descendants: Option<Vec<String>>,
    /// True if this class is abstract in its model.
    pub is_abstract: bool,
    /// True if this class is designated a primitive type within the overall type system of the schema.
    pub is_primitive_type: bool,
    /// True if this definition overrides a class of the same name in an included schema.
    pub is_override: bool,

    // inherited: BMM_ENUMERATION
    /// The list of names of the enumeration. If no values are supplied, the integer values 0, 1, 2, ... are assumed.
    pub item_names: Option<Vec<String>>,
    /// Optional list of specific values. Must be 1:1 with \`item_names' list.
    pub item_values: Option<Vec<serde_json::Value>>,
    /// Name of type any concrete BMM_ENUMERATION_* sub-type is based on. Redefined to "STRING".
    pub underlying_type_name: String,
}