openehr-lang 0.0.128

openEHR LANG BMM/P_BMM object model, generated from BMM: generations v1_0 (LANG 1.0.0) and v1_1 (LANG 1.1.0, current; the stable BMM v2.x unit beside the paused BMM3 unit), plus hand-written ODIN/BEL/EL readers
Documentation
// @generated by openehr-codegen from BMM (`BMM_MODEL`) — DO NOT EDIT.
// SPDX-FileCopyrightText: Cadasto B.V.
// SPDX-FileCopyrightText: openEHR Foundation
// SPDX-License-Identifier: Apache-2.0
// Hand-written spec functions/invariants live in the sibling `*_impl.rs`.

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

use crate::v1_1::bmm::core::bmm_class::BmmClass;
use crate::v1_1::bmm::core::bmm_package::BmmPackage;

/// Model of a BMM schema (along with what is inherited from BMM_SCHEMA_CORE).
#[doc(alias = "BMM_MODEL")]
#[derive(Debug, Clone, PartialEq)]
pub struct BmmModel {
    // inherited: BMM_SCHEMA_CORE
    /// Publisher of model expressed in the schema. Persisted attribute.
    pub rm_publisher: String,
    /// Release of model expressed in the schema as a 3-part numeric, e.g. "3.1.0". Persisted attribute.
    pub rm_release: String,
    /// Name of model expressed in schema; a 'schema' usually contains all of the packages of one 'model' of a publisher. A publisher with more than one model can have multiple schemas. Persisted attribute.
    pub schema_name: String,
    /// Revision of schema. Persisted attribute.
    pub schema_revision: String,
    /// Persisted attribute.
    pub schema_lifecycle_state: String,
    /// Primary author of schema. Persisted attribute.
    pub schema_author: String,
    /// Description of schema. Persisted attribute.
    pub schema_description: String,
    /// Contributing authors of schema. Persisted attribute.
    pub schema_contributors: Option<Vec<String>>,
    /// Name of a parent class used within the schema to provide archetype capability, enabling filtering of classes in RM visualisation. If empty, 'Any' is assumed. Persisted attribute.
    pub archetype_parent_class: Option<String>,
    /// Name of a parent class of logical 'data types' used within the schema to provide archetype capability, enabling filtering of classes in RM visualisation.
    ///
    /// If empty, 'Any' is assumed. Persisted attribute.
    pub archetype_data_value_parent_class: Option<String>,
    /// List of top-level package paths that provide the RM 'model' part in archetype identifiers, e.g. the path "org.openehr.ehr" gives "EHR" in "openEHR-EHR".
    ///
    /// Within this namespace, archetypes can be based on any class reachable from classes defined directly in these packages. Persisted attribute.
    pub archetype_rm_closure_packages: Option<Vec<String>>,
    /// If archetype_parent_class is not set, designate a class whose descendants should be made visible in tree and grid renderings of the archetype definition. Persisted attribute.
    pub archetype_visualise_descendants_of: Option<String>,

    // inherited: BMM_MODEL_ELEMENT
    /// Optional documentation of this element.
    pub documentation: Option<String>,

    // inherited: BMM_PACKAGE_CONTAINER
    /// Child packages; keys all in upper case for guaranteed matching.
    pub packages: Option<std::collections::BTreeMap<String, BmmPackage>>,
    /// All classes in this schema.
    pub class_definitions: Option<std::collections::BTreeMap<String, BmmClass>>,
}