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
58
59
60
// @generated by openehr-codegen from BMM (`BMM_UNITARY_PROPERTY`) — DO NOT EDIT.
//! The openEHR `BMM_UNITARY_PROPERTY` 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::bmm3::core::entity::bmm_unitary_type::BmmUnitaryType;
use crate::bmm3::core::feature::bmm_feature_extension::BmmFeatureExtension;
use crate::bmm3::core::feature::bmm_feature_group::BmmFeatureGroup;
/// Meta-type of for properties of unitary type.
#[doc(alias = "BMM_UNITARY_PROPERTY")]
#[derive(Debug, Clone, PartialEq)]
pub struct BmmUnitaryProperty {
// inherited: BMM_MODEL_ELEMENT
/// Name of this model element.
pub name: String,
/// Optional documentation of this element, as a keyed list.
///
/// It is strongly recommended to use the following key /type combinations for the relevant purposes:
///
/// * `"purpose": String`
/// * `"keywords": List<String>`
/// * `"use": String`
/// * `"misuse": String`
/// * `"references": String`
///
/// Other keys and value types may be freely added.
pub documentation: Option<std::collections::BTreeMap<String, serde_json::Value>>,
// NOTE: `scope` (BMM-mandatory back-reference) omitted — LANG BMM3 bmm_feature (scope: BMM_CLASS — redefinition of BMM_MODEL_ELEMENT.scope). A back-reference is not forward-owned data and never appears on the canonical wire; emitting it as an owning field would make this type non-constructible.
/// Optional meta-data of this element, as a keyed list. May be used to extend the meta-model.
pub extensions: Option<std::collections::BTreeMap<String, serde_json::Value>>,
/// Declared or inferred static type of the entity.
pub r#type: BmmUnitaryType,
// inherited: BMM_FORMAL_ELEMENT
/// True if this element can be null (Void) at execution time. May be interpreted as optionality in subtypes..
pub is_nullable: Option<bool>,
// inherited: BMM_FEATURE
/// True if this feature was synthesised due to generic substitution in an inherited type, or further constraining of a formal generic parameter.
pub is_synthesised_generic: Option<bool>,
/// Extensions to feature-level meta-types.
pub feature_extensions: Option<Vec<BmmFeatureExtension>>,
/// Group containing this feature.
pub group: BmmFeatureGroup,
// inherited: BMM_PROPERTY
/// True if this property is marked with info model `_im_runtime_` property.
pub is_im_runtime: Option<bool>,
/// True if this property was marked with info model `_im_infrastructure_` flag.
pub is_im_infrastructure: Option<bool>,
/// True if this property instance is a compositional sub-part of the owning class instance.
///
/// Equivalent to 'composition' in UML associations (but missing from UML properties without associations) and also 'cascade-delete' semantics in ER schemas.
pub is_composition: Option<bool>,
}