openehr-lang 0.0.128

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

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

use crate::v1_1::bmm3::expression::el_attached::ElAttached;
use crate::v1_1::bmm3::expression::el_binary_operator::ElBinaryOperator;
use crate::v1_1::bmm3::expression::el_boolean_expression::ElBooleanExpression;
use crate::v1_1::bmm3::expression::el_case_table::ElCaseTable;
use crate::v1_1::bmm3::expression::el_condition_chain::ElConditionChain;
use crate::v1_1::bmm3::expression::el_defined::ElDefined;
use crate::v1_1::bmm3::expression::el_function_agent::ElFunctionAgent;
use crate::v1_1::bmm3::expression::el_function_call::ElFunctionCall;
use crate::v1_1::bmm3::expression::el_literal::ElLiteral;
use crate::v1_1::bmm3::expression::el_procedure_agent::ElProcedureAgent;
use crate::v1_1::bmm3::expression::el_property_ref::ElPropertyRef;
use crate::v1_1::bmm3::expression::el_readonly_variable::ElReadonlyVariable;
use crate::v1_1::bmm3::expression::el_static_ref::ElStaticRef;
use crate::v1_1::bmm3::expression::el_terminal::ElTerminal;
use crate::v1_1::bmm3::expression::el_tuple::ElTuple;
use crate::v1_1::bmm3::expression::el_type_ref::ElTypeRef;
use crate::v1_1::bmm3::expression::el_unary_operator::ElUnaryOperator;
use crate::v1_1::bmm3::expression::el_writable_variable::ElWritableVariable;

/// Closed subtype set of `EL_EXPRESSION`, dispatched on each payload's `_type`.
///
/// Abstract parent of all typed expression meta-types.
#[doc(alias = "EL_EXPRESSION")]
#[derive(Debug, Clone, PartialEq)]
pub enum ElExpression {
    /// The `EL_ATTACHED` subtype of `EL_EXPRESSION`.
    ElAttached(ElAttached),
    /// The `EL_BINARY_OPERATOR` subtype of `EL_EXPRESSION`.
    ElBinaryOperator(Box<ElBinaryOperator>),
    /// The `EL_BOOLEAN_EXPRESSION` subtype of `EL_EXPRESSION`.
    ElBooleanExpression(Box<ElBooleanExpression>),
    /// The `EL_CASE_TABLE` subtype of `EL_EXPRESSION`.
    ElCaseTable(ElCaseTable<ElTerminal>),
    /// The `EL_CONDITION_CHAIN` subtype of `EL_EXPRESSION`.
    ElConditionChain(ElConditionChain<ElTerminal>),
    /// The `EL_DEFINED` subtype of `EL_EXPRESSION`.
    ElDefined(ElDefined),
    /// The `EL_FUNCTION_AGENT` subtype of `EL_EXPRESSION`.
    ElFunctionAgent(ElFunctionAgent),
    /// The `EL_FUNCTION_CALL` subtype of `EL_EXPRESSION`.
    ElFunctionCall(ElFunctionCall),
    /// The `EL_LITERAL` subtype of `EL_EXPRESSION`.
    ElLiteral(ElLiteral),
    /// The `EL_PROCEDURE_AGENT` subtype of `EL_EXPRESSION`.
    ElProcedureAgent(ElProcedureAgent),
    /// The `EL_PROPERTY_REF` subtype of `EL_EXPRESSION`.
    ElPropertyRef(ElPropertyRef),
    /// The `EL_READONLY_VARIABLE` subtype of `EL_EXPRESSION`.
    ElReadonlyVariable(ElReadonlyVariable),
    /// The `EL_STATIC_REF` subtype of `EL_EXPRESSION`.
    ElStaticRef(ElStaticRef),
    /// The `EL_TUPLE` subtype of `EL_EXPRESSION`.
    ElTuple(ElTuple),
    /// The `EL_TYPE_REF` subtype of `EL_EXPRESSION`.
    ElTypeRef(ElTypeRef),
    /// The `EL_UNARY_OPERATOR` subtype of `EL_EXPRESSION`.
    ElUnaryOperator(Box<ElUnaryOperator>),
    /// The `EL_WRITABLE_VARIABLE` subtype of `EL_EXPRESSION`.
    ElWritableVariable(ElWritableVariable),
}