openehr-lang 0.0.76

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

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

use crate::v1_0::bmm::core::feature::bmm_instantiable::BmmInstantiable;
use crate::v1_0::bmm::expression::el_attached::ElAttached;
use crate::v1_0::bmm::expression::el_defined::ElDefined;
use crate::v1_0::bmm::expression::el_function_agent::ElFunctionAgent;
use crate::v1_0::bmm::expression::el_function_call::ElFunctionCall;
use crate::v1_0::bmm::expression::el_instantiable_ref::ElInstantiableRef;
use crate::v1_0::bmm::expression::el_literal::ElLiteral;
use crate::v1_0::bmm::expression::el_procedure_agent::ElProcedureAgent;
use crate::v1_0::bmm::expression::el_self_ref::ElSelfRef;
use crate::v1_0::bmm::expression::el_tuple::ElTuple;
use crate::v1_0::bmm::expression::el_type_ref::ElTypeRef;

/// Closed subtype set of `EL_TERMINAL`, dispatched on each payload's `_type`.
///
/// Expression terminal entity, representing one of:
///
/// * a reference to a literal value of any type;
/// * a reference to an instance of any instantiable type, i.e. variable, property or constant;
/// * an agent, i.e. a delayed function call;
/// * a function call.
#[doc(alias = "EL_TERMINAL")]
#[derive(Debug, Clone, PartialEq)]
pub enum ElTerminal {
    /// The `EL_ATTACHED` subtype of `EL_TERMINAL`.
    ElAttached(Box<ElAttached>),
    /// The `EL_DEFINED` subtype of `EL_TERMINAL`.
    ElDefined(Box<ElDefined>),
    /// The `EL_FUNCTION_AGENT` subtype of `EL_TERMINAL`.
    ElFunctionAgent(Box<ElFunctionAgent>),
    /// The `EL_FUNCTION_CALL` subtype of `EL_TERMINAL`.
    ElFunctionCall(Box<ElFunctionCall>),
    /// The `EL_INSTANTIABLE_REF` subtype of `EL_TERMINAL`.
    ElInstantiableRef(Box<ElInstantiableRef<BmmInstantiable>>),
    /// The `EL_LITERAL` subtype of `EL_TERMINAL`.
    ElLiteral(ElLiteral),
    /// The `EL_PROCEDURE_AGENT` subtype of `EL_TERMINAL`.
    ElProcedureAgent(Box<ElProcedureAgent>),
    /// The `EL_SELF_REF` subtype of `EL_TERMINAL`.
    ElSelfRef(ElSelfRef),
    /// The `EL_TUPLE` subtype of `EL_TERMINAL`.
    ElTuple(ElTuple),
    /// The `EL_TYPE_REF` subtype of `EL_TERMINAL`.
    ElTypeRef(ElTypeRef),
}