openehr-lang 0.0.2

openEHR LANG 1.0.0: BMM/P_BMM object model (generated from BMM) plus a hand-written ODIN instance parser (the `odin` module — deliberately off the codegen path).
Documentation
// @generated by openehr-codegen from BMM (`EXPRESSION`) — DO NOT EDIT.

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

use crate::beom::core::expr_binary_operator::ExprBinaryOperator;
use crate::beom::core::expr_for_all::ExprForAll;
use crate::beom::core::expr_function_call::ExprFunctionCall;
use crate::beom::core::expr_literal::ExprLiteral;
use crate::beom::core::expr_unary_operator::ExprUnaryOperator;
use crate::beom::core::expr_value_ref::ExprValueRef;
use crate::beom::core::expr_variable_ref::ExprVariableRef;

/// Closed subtype set of `EXPRESSION`, dispatched on each payload's `_type`.
///
/// Abstract parent of all expression meta-types.
#[doc(alias = "EXPRESSION")]
#[derive(Debug, Clone, PartialEq)]
pub enum Expression {
    /// The `EXPR_BINARY_OPERATOR` subtype of `EXPRESSION`.
    ExprBinaryOperator(Box<ExprBinaryOperator>),
    /// The `EXPR_FOR_ALL` subtype of `EXPRESSION`.
    ExprForAll(Box<ExprForAll>),
    /// The `EXPR_FUNCTION_CALL` subtype of `EXPRESSION`.
    ExprFunctionCall(ExprFunctionCall),
    /// The `EXPR_LITERAL` subtype of `EXPRESSION`.
    ExprLiteral(ExprLiteral),
    /// The `EXPR_UNARY_OPERATOR` subtype of `EXPRESSION`.
    ExprUnaryOperator(Box<ExprUnaryOperator>),
    /// The `EXPR_VALUE_REF` subtype of `EXPRESSION`.
    ExprValueRef(ExprValueRef),
    /// The `EXPR_VARIABLE_REF` subtype of `EXPRESSION`.
    ExprVariableRef(ExprVariableRef),
}