// @generated by openehr-codegen from BMM (`P_BMM_SCHEMA_DESCRIPTOR`) — DO NOT EDIT.
// SPDX-FileCopyrightText: Cadasto B.V.
// SPDX-FileCopyrightText: openEHR Foundation
// SPDX-License-Identifier: Apache-2.0
//! The openEHR `P_BMM_SCHEMA_DESCRIPTOR` spec class, generated from the vendored BMM
//! meta-model.
use crate::v1_0::bmm::core::model::bmm_model::BmmModel;
use crate::v1_0::bmm_persistence::p_bmm_schema::PBmmSchema;
/// Concrete descendant of `BMM_SCHEMA_DESCRIPTOR` that provides a way to read an ODIN or other similarly encoded P_BMM schema file.
#[doc(alias = "P_BMM_SCHEMA_DESCRIPTOR")]
#[derive(Debug, Clone, PartialEq)]
pub struct PBmmSchemaDescriptor {
/// Persistent form of model.
pub bmm_schema: Option<PBmmSchema>,
// inherited: BMM_SCHEMA_DESCRIPTOR
/// Computable form of model.
pub bmm_model: Option<BmmModel>,
/// Schema id, formed by
///
/// `{BMM_DEFINITIONS}.create_schema_id(
/// meta_data.item({BMM_DEFINITIONS}.Metadata_model_publisher),
/// meta_data.item({BMM_DEFINITIONS}.Metadata_schema_name),
/// meta_data.item({BMM_DEFINITIONS}.Metadata_model_release)`
///
/// e.g. `openehr_rm_1.0.3`, `openehr_test_1.0.1`, `iso_13606_1_2008_2.1.2`.
pub schema_id: String,
/// Table of `{key, value}` of schema meta-data, keys are string values defined by `{BMM_DEFINITIONS}.Metadata_*` constants.
pub meta_data: std::collections::BTreeMap<String, String>,
/// Identifiers of schemas included by this schema.
pub includes: Option<Vec<String>>,
}