1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// @generated by openehr-codegen from BMM (`P_BMM_SCHEMA`) — DO NOT EDIT.
// SPDX-FileCopyrightText: Cadasto B.V.
// SPDX-FileCopyrightText: openEHR Foundation
// SPDX-License-Identifier: Apache-2.0
//! The openEHR `P_BMM_SCHEMA` spec class, generated from the vendored BMM
//! meta-model.
use crate::v1_0::bmm::core::model::bmm_model::BmmModel;
use crate::v1_0::bmm::model_access::bmm_schema_state::BmmSchemaState;
use crate::v1_0::bmm_persistence::bmm_include_spec::BmmIncludeSpec;
use crate::v1_0::bmm_persistence::p_bmm_class::PBmmClass;
use crate::v1_0::bmm_persistence::p_bmm_package::PBmmPackage;
/// Persisted form of `BMM_SCHEMA`.
#[doc(alias = "P_BMM_SCHEMA")]
#[derive(Debug, Clone, PartialEq)]
pub struct PBmmSchema {
// inherited: P_BMM_PACKAGE_CONTAINER
/// Package structure as a hierarchy of packages each potentially containing names of classes in that package in the original model.
pub packages: std::collections::BTreeMap<String, PBmmPackage>,
// 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,
// inherited: BMM_SCHEMA
/// 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>>,
/// Primitive type definitions. Persisted attribute.
pub primitive_types: Option<Vec<PBmmClass>>,
/// Class definitions. Persisted attribute.
pub class_definitions: Option<Vec<PBmmClass>>,
}