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_SCHEMA`) — DO NOT EDIT.
// SPDX-FileCopyrightText: Cadasto B.V.
// SPDX-FileCopyrightText: openEHR Foundation
// SPDX-License-Identifier: Apache-2.0

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

use crate::v1_1::bmm3::core::model::bmm_model::BmmModel;
use crate::v1_1::bmm3::model_access::bmm_include_spec::BmmIncludeSpec;
use crate::v1_1::bmm3::model_access::bmm_schema_state::BmmSchemaState;

/// Abstract parent of any persistable form of a BMM model, e.g. `P_BMM_SCHEMA`.
#[doc(alias = "BMM_SCHEMA")]
#[derive(Debug, Clone, PartialEq)]
pub struct BmmSchema {
    // inherited: BMM_MODEL_METADATA
    /// Publisher of model expressed in the schema.
    pub rm_publisher: String,
    /// Release of model expressed in the schema as a 3-part numeric, e.g. "3.1.0" .
    pub rm_release: String,
    /// Version of BMM model, enabling schema evolution reasoning. Persisted attribute.
    pub bmm_version: String,
    /// Inclusion list of any form of BMM model, in the form of a hash of individual include specifications, each of which at least specifies the id of another schema, and may specify a namespace via which types from the included schemas are known in this schema.
    /// Persisted attribute.
    pub includes: Option<std::collections::BTreeMap<String, BmmIncludeSpec>>,
    /// Generated by `_create_bmm_model_` from persisted elements.
    pub bmm_model: Option<BmmModel>,
    /// Current processing state.
    pub state: BmmSchemaState,
    /// Name of this model, if this schema is a model root point. Not set for sub-schemas that are not considered models on their own.
    pub model_name: Option<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.
    pub schema_name: String,
    /// Revision of schema.
    pub schema_revision: String,
    /// Schema development lifecycle state.
    pub schema_lifecycle_state: String,
    /// Primary author of schema.
    pub schema_author: String,
    /// Description of schema.
    pub schema_description: String,
    /// Contributing authors of schema.
    pub schema_contributors: Option<Vec<String>>,
}