// @generated by openehr-codegen from BMM (`P_BMM_FUNCTION`) — DO NOT EDIT.
// SPDX-FileCopyrightText: Cadasto B.V.
// SPDX-FileCopyrightText: openEHR Foundation
// SPDX-License-Identifier: Apache-2.0
//! The openEHR `P_BMM_FUNCTION` spec class, generated from the vendored BMM
//! meta-model.
use crate::v1_1::bmm_persistence::p_bmm_function_parameter::PBmmFunctionParameter;
use crate::v1_1::bmm_persistence::p_bmm_type::PBmmType;
/// Persistent form of a BMM function (routine) definition within a class definition.
#[doc(alias = "P_BMM_FUNCTION")]
#[derive(Debug, Clone, PartialEq)]
pub struct PBmmFunction {
// inherited: P_BMM_MODEL_ELEMENT
/// Optional documentation of this element.
pub documentation: Option<String>,
/// Name of this function within its class. Persisted attribute.
pub name: String,
/// Optional alias names for this function, keyed by alias. Persisted attribute.
pub aliases: Option<std::collections::BTreeMap<String, String>>,
/// True if this function is abstract in its class, i.e. has no implementation. Persisted attribute.
pub is_abstract: Option<bool>,
/// Formal parameters of the function, keyed by parameter name. Persisted attribute.
pub parameters: Option<std::collections::BTreeMap<String, PBmmFunctionParameter>>,
/// Optional pre-condition assertions on this function, keyed by tag. Persisted attribute.
pub pre_conditions: Option<std::collections::BTreeMap<String, String>>,
/// Optional post-condition assertions on this function, keyed by tag. Persisted attribute.
pub post_conditions: Option<std::collections::BTreeMap<String, String>>,
/// Type definition of the function result, if any (absent for procedures). Persisted attribute.
pub result: Option<PBmmType>,
/// True if the result of this function is allowed to be Void (null). Persisted attribute.
pub is_nullable: Option<bool>,
}