use serde::{Serialize, Deserialize};
use serde_json::{Map, Value};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum AssignTypeDatatypeProps {
Replacechildren,
Firstchild,
Lastchild,
Previoussibling,
Nextsibling,
Replace,
Delete,
Addattribute,
}
impl Default for AssignTypeDatatypeProps {
fn default() -> Self {
Self::Replacechildren
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum BindingDatatypeProps {
Early,
Late,
}
impl Default for BindingDatatypeProps {
fn default() -> Self {
Self::Early
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum BooleanDatatypeProps {
True,
False,
}
impl Default for BooleanDatatypeProps {
fn default() -> Self {
Self::True
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum ExmodeDatatypeProps {
Lax,
Strict,
}
impl Default for ExmodeDatatypeProps {
fn default() -> Self {
Self::Lax
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum HistoryTypeDatatypeProps {
Shallow,
Deep,
}
impl Default for HistoryTypeDatatypeProps {
fn default() -> Self {
Self::Shallow
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum TransitionTypeDatatypeProps {
Internal,
External,
}
impl Default for TransitionTypeDatatypeProps {
fn default() -> Self {
Self::Internal
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct AssignProps {
#[serde(default)]
pub location: String,
#[serde(default)]
pub expr: Option<String>,
#[serde(default)]
pub type_value: AssignTypeDatatypeProps,
#[serde(default)]
pub attr: Option<String>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
#[serde(default)]
pub content: Vec<Map<String, Value>>,
}
impl Default for AssignProps {
fn default() -> Self {
Self {
location: String::default(),
expr: Option::<String>::default(),
type_value: AssignTypeDatatypeProps::default(),
attr: Option::<String>::default(),
other_attributes: Map::<String, Value>::default(),
content: Vec::<Map::<String, Value>>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct CancelProps {
#[serde(default)]
pub other_element: Vec<Map<String, Value>>,
#[serde(default)]
pub sendid: Option<String>,
#[serde(default)]
pub sendidexpr: Option<String>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for CancelProps {
fn default() -> Self {
Self {
other_element: Vec::<Map::<String, Value>>::default(),
sendid: Option::<String>::default(),
sendidexpr: Option::<String>::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ContentProps {
#[serde(default)]
pub content: Option<Vec<ScxmlProps>>,
#[serde(default)]
pub expr: Option<String>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for ContentProps {
fn default() -> Self {
Self {
content: Option::<Vec::<ScxmlProps>>::default(),
expr: Option::<String>::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct DataProps {
#[serde(default)]
pub id: String,
#[serde(default)]
pub src: Option<String>,
#[serde(default)]
pub expr: Option<String>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
#[serde(default)]
pub content: Vec<Map<String, Value>>,
}
impl Default for DataProps {
fn default() -> Self {
Self {
id: String::default(),
src: Option::<String>::default(),
expr: Option::<String>::default(),
other_attributes: Map::<String, Value>::default(),
content: Vec::<Map::<String, Value>>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct DatamodelProps {
#[serde(default)]
pub data: Vec<DataProps>,
#[serde(default)]
pub other_element: Vec<Map<String, Value>>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for DatamodelProps {
fn default() -> Self {
Self {
data: Vec::<DataProps>::default(),
other_element: Vec::<Map::<String, Value>>::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct DonedataProps {
#[serde(default)]
pub content: Option<ContentProps>,
#[serde(default)]
pub param: Vec<ParamProps>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for DonedataProps {
fn default() -> Self {
Self {
content: Option::<ContentProps>::default(),
param: Vec::<ParamProps>::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ElseProps {
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for ElseProps {
fn default() -> Self {
Self {
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ElseifProps {
#[serde(default)]
pub cond: String,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for ElseifProps {
fn default() -> Self {
Self {
cond: String::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct FinalProps {
#[serde(default)]
pub onentry: Vec<OnentryProps>,
#[serde(default)]
pub onexit: Vec<OnexitProps>,
#[serde(default)]
pub donedata: Vec<DonedataProps>,
#[serde(default)]
pub other_element: Vec<Map<String, Value>>,
#[serde(default)]
pub id: Option<String>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for FinalProps {
fn default() -> Self {
Self {
onentry: Vec::<OnentryProps>::default(),
onexit: Vec::<OnexitProps>::default(),
donedata: Vec::<DonedataProps>::default(),
other_element: Vec::<Map::<String, Value>>::default(),
id: Option::<String>::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct FinalizeProps {
#[serde(default)]
pub other_element: Vec<Map<String, Value>>,
#[serde(default)]
pub raise_value: Vec<RaiseProps>,
#[serde(default)]
pub if_value: Vec<IfProps>,
#[serde(default)]
pub foreach: Vec<ForeachProps>,
#[serde(default)]
pub send: Vec<SendProps>,
#[serde(default)]
pub script: Vec<ScriptProps>,
#[serde(default)]
pub assign: Vec<AssignProps>,
#[serde(default)]
pub log: Vec<LogProps>,
#[serde(default)]
pub cancel: Vec<CancelProps>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for FinalizeProps {
fn default() -> Self {
Self {
other_element: Vec::<Map::<String, Value>>::default(),
raise_value: Vec::<RaiseProps>::default(),
if_value: Vec::<IfProps>::default(),
foreach: Vec::<ForeachProps>::default(),
send: Vec::<SendProps>::default(),
script: Vec::<ScriptProps>::default(),
assign: Vec::<AssignProps>::default(),
log: Vec::<LogProps>::default(),
cancel: Vec::<CancelProps>::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ForeachProps {
#[serde(default)]
pub other_element: Vec<Map<String, Value>>,
#[serde(default)]
pub raise_value: Vec<RaiseProps>,
#[serde(default)]
pub if_value: Vec<IfProps>,
#[serde(default)]
pub foreach: Vec<ForeachProps>,
#[serde(default)]
pub send: Vec<SendProps>,
#[serde(default)]
pub script: Vec<ScriptProps>,
#[serde(default)]
pub assign: Vec<AssignProps>,
#[serde(default)]
pub log: Vec<LogProps>,
#[serde(default)]
pub cancel: Vec<CancelProps>,
#[serde(default)]
pub array: String,
#[serde(default)]
pub item: String,
#[serde(default)]
pub index: Option<String>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for ForeachProps {
fn default() -> Self {
Self {
other_element: Vec::<Map::<String, Value>>::default(),
raise_value: Vec::<RaiseProps>::default(),
if_value: Vec::<IfProps>::default(),
foreach: Vec::<ForeachProps>::default(),
send: Vec::<SendProps>::default(),
script: Vec::<ScriptProps>::default(),
assign: Vec::<AssignProps>::default(),
log: Vec::<LogProps>::default(),
cancel: Vec::<CancelProps>::default(),
array: String::default(),
item: String::default(),
index: Option::<String>::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct HistoryProps {
#[serde(default)]
pub other_element: Vec<Map<String, Value>>,
#[serde(default)]
pub transition: TransitionProps,
#[serde(default)]
pub id: Option<String>,
#[serde(default)]
pub type_value: Option<HistoryTypeDatatypeProps>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for HistoryProps {
fn default() -> Self {
Self {
other_element: Vec::<Map::<String, Value>>::default(),
transition: TransitionProps::default(),
id: Option::<String>::default(),
type_value: Option::<HistoryTypeDatatypeProps>::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct IfProps {
#[serde(default)]
pub other_element: Vec<Map<String, Value>>,
#[serde(default)]
pub raise_value: Vec<RaiseProps>,
#[serde(default)]
pub if_value: Vec<IfProps>,
#[serde(default)]
pub foreach: Vec<ForeachProps>,
#[serde(default)]
pub send: Vec<SendProps>,
#[serde(default)]
pub script: Vec<ScriptProps>,
#[serde(default)]
pub assign: Vec<AssignProps>,
#[serde(default)]
pub log: Vec<LogProps>,
#[serde(default)]
pub cancel: Vec<CancelProps>,
#[serde(default)]
pub elseif: Option<ElseifProps>,
#[serde(default)]
pub else_value: Option<ElseProps>,
#[serde(default)]
pub cond: String,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for IfProps {
fn default() -> Self {
Self {
other_element: Vec::<Map::<String, Value>>::default(),
raise_value: Vec::<RaiseProps>::default(),
if_value: Vec::<IfProps>::default(),
foreach: Vec::<ForeachProps>::default(),
send: Vec::<SendProps>::default(),
script: Vec::<ScriptProps>::default(),
assign: Vec::<AssignProps>::default(),
log: Vec::<LogProps>::default(),
cancel: Vec::<CancelProps>::default(),
elseif: Option::<ElseifProps>::default(),
else_value: Option::<ElseProps>::default(),
cond: String::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct InitialProps {
#[serde(default)]
pub other_element: Vec<Map<String, Value>>,
#[serde(default)]
pub transition: TransitionProps,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for InitialProps {
fn default() -> Self {
Self {
other_element: Vec::<Map::<String, Value>>::default(),
transition: TransitionProps::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct InvokeProps {
#[serde(default)]
pub content: Vec<ContentProps>,
#[serde(default)]
pub param: Vec<ParamProps>,
#[serde(default)]
pub finalize: Vec<FinalizeProps>,
#[serde(default)]
pub other_element: Vec<Map<String, Value>>,
#[serde(default)]
pub type_value: String,
#[serde(default)]
pub typeexpr: Option<String>,
#[serde(default)]
pub src: Option<String>,
#[serde(default)]
pub srcexpr: Option<String>,
#[serde(default)]
pub id: Option<String>,
#[serde(default)]
pub idlocation: Option<String>,
#[serde(default)]
pub namelist: Option<String>,
#[serde(default)]
pub autoforward: BooleanDatatypeProps,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for InvokeProps {
fn default() -> Self {
Self {
content: Vec::<ContentProps>::default(),
param: Vec::<ParamProps>::default(),
finalize: Vec::<FinalizeProps>::default(),
other_element: Vec::<Map::<String, Value>>::default(),
type_value: String::default(),
typeexpr: Option::<String>::default(),
src: Option::<String>::default(),
srcexpr: Option::<String>::default(),
id: Option::<String>::default(),
idlocation: Option::<String>::default(),
namelist: Option::<String>::default(),
autoforward: BooleanDatatypeProps::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct LogProps {
#[serde(default)]
pub other_element: Vec<Map<String, Value>>,
#[serde(default)]
pub label: Option<String>,
#[serde(default)]
pub expr: Option<String>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for LogProps {
fn default() -> Self {
Self {
other_element: Vec::<Map::<String, Value>>::default(),
label: Option::<String>::default(),
expr: Option::<String>::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct OnentryProps {
#[serde(default)]
pub other_element: Vec<Map<String, Value>>,
#[serde(default)]
pub raise_value: Vec<RaiseProps>,
#[serde(default)]
pub if_value: Vec<IfProps>,
#[serde(default)]
pub foreach: Vec<ForeachProps>,
#[serde(default)]
pub send: Vec<SendProps>,
#[serde(default)]
pub script: Vec<ScriptProps>,
#[serde(default)]
pub assign: Vec<AssignProps>,
#[serde(default)]
pub log: Vec<LogProps>,
#[serde(default)]
pub cancel: Vec<CancelProps>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for OnentryProps {
fn default() -> Self {
Self {
other_element: Vec::<Map::<String, Value>>::default(),
raise_value: Vec::<RaiseProps>::default(),
if_value: Vec::<IfProps>::default(),
foreach: Vec::<ForeachProps>::default(),
send: Vec::<SendProps>::default(),
script: Vec::<ScriptProps>::default(),
assign: Vec::<AssignProps>::default(),
log: Vec::<LogProps>::default(),
cancel: Vec::<CancelProps>::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct OnexitProps {
#[serde(default)]
pub other_element: Vec<Map<String, Value>>,
#[serde(default)]
pub raise_value: Vec<RaiseProps>,
#[serde(default)]
pub if_value: Vec<IfProps>,
#[serde(default)]
pub foreach: Vec<ForeachProps>,
#[serde(default)]
pub send: Vec<SendProps>,
#[serde(default)]
pub script: Vec<ScriptProps>,
#[serde(default)]
pub assign: Vec<AssignProps>,
#[serde(default)]
pub log: Vec<LogProps>,
#[serde(default)]
pub cancel: Vec<CancelProps>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for OnexitProps {
fn default() -> Self {
Self {
other_element: Vec::<Map::<String, Value>>::default(),
raise_value: Vec::<RaiseProps>::default(),
if_value: Vec::<IfProps>::default(),
foreach: Vec::<ForeachProps>::default(),
send: Vec::<SendProps>::default(),
script: Vec::<ScriptProps>::default(),
assign: Vec::<AssignProps>::default(),
log: Vec::<LogProps>::default(),
cancel: Vec::<CancelProps>::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ParallelProps {
#[serde(default)]
pub onentry: Vec<OnentryProps>,
#[serde(default)]
pub onexit: Vec<OnexitProps>,
#[serde(default)]
pub transition: Vec<TransitionProps>,
#[serde(default)]
pub state: Vec<StateProps>,
#[serde(default)]
pub parallel: Vec<ParallelProps>,
#[serde(default)]
pub history: Vec<HistoryProps>,
#[serde(default)]
pub datamodel: Vec<DatamodelProps>,
#[serde(default)]
pub invoke: Vec<InvokeProps>,
#[serde(default)]
pub other_element: Vec<Map<String, Value>>,
#[serde(default)]
pub id: Option<String>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for ParallelProps {
fn default() -> Self {
Self {
onentry: Vec::<OnentryProps>::default(),
onexit: Vec::<OnexitProps>::default(),
transition: Vec::<TransitionProps>::default(),
state: Vec::<StateProps>::default(),
parallel: Vec::<ParallelProps>::default(),
history: Vec::<HistoryProps>::default(),
datamodel: Vec::<DatamodelProps>::default(),
invoke: Vec::<InvokeProps>::default(),
other_element: Vec::<Map::<String, Value>>::default(),
id: Option::<String>::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ParamProps {
#[serde(default)]
pub other_element: Vec<Map<String, Value>>,
#[serde(default)]
pub name: String,
#[serde(default)]
pub expr: Option<String>,
#[serde(default)]
pub location: Option<String>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for ParamProps {
fn default() -> Self {
Self {
other_element: Vec::<Map::<String, Value>>::default(),
name: String::default(),
expr: Option::<String>::default(),
location: Option::<String>::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct RaiseProps {
#[serde(default)]
pub event: String,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for RaiseProps {
fn default() -> Self {
Self {
event: String::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ScriptProps {
#[serde(default)]
pub src: Option<String>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
#[serde(default)]
pub content: Vec<Map<String, Value>>,
}
impl Default for ScriptProps {
fn default() -> Self {
Self {
src: Option::<String>::default(),
other_attributes: Map::<String, Value>::default(),
content: Vec::<Map::<String, Value>>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ScxmlProps {
#[serde(default)]
pub state: Vec<StateProps>,
#[serde(default)]
pub parallel: Vec<ParallelProps>,
#[serde(default)]
pub r#final: Vec<FinalProps>,
#[serde(default)]
pub datamodel: Vec<DatamodelProps>,
#[serde(default)]
pub script: Vec<ScriptProps>,
#[serde(default)]
pub other_element: Vec<Map<String, Value>>,
#[serde(default)]
pub initial: Vec<String>,
#[serde(default)]
pub name: Option<String>,
#[serde(default)]
pub version: Value,
#[serde(default)]
pub datamodel_attribute: String,
#[serde(default)]
pub binding: Option<BindingDatatypeProps>,
#[serde(default)]
pub exmode: Option<ExmodeDatatypeProps>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for ScxmlProps {
fn default() -> Self {
Self {
state: Vec::<StateProps>::default(),
parallel: Vec::<ParallelProps>::default(),
r#final: Vec::<FinalProps>::default(),
datamodel: Vec::<DatamodelProps>::default(),
script: Vec::<ScriptProps>::default(),
other_element: Vec::<Map::<String, Value>>::default(),
initial: Vec::<String>::default(),
name: Option::<String>::default(),
version: Value::default(),
datamodel_attribute: String::default(),
binding: Option::<BindingDatatypeProps>::default(),
exmode: Option::<ExmodeDatatypeProps>::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct SendProps {
#[serde(default)]
pub content: Vec<ContentProps>,
#[serde(default)]
pub param: Vec<ParamProps>,
#[serde(default)]
pub other_element: Vec<Map<String, Value>>,
#[serde(default)]
pub event: Option<String>,
#[serde(default)]
pub eventexpr: Option<String>,
#[serde(default)]
pub target: Option<String>,
#[serde(default)]
pub targetexpr: Option<String>,
#[serde(default)]
pub type_value: String,
#[serde(default)]
pub typeexpr: Option<String>,
#[serde(default)]
pub id: Option<String>,
#[serde(default)]
pub idlocation: Option<String>,
#[serde(default)]
pub delay: String,
#[serde(default)]
pub delayexpr: Option<String>,
#[serde(default)]
pub namelist: Option<String>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for SendProps {
fn default() -> Self {
Self {
content: Vec::<ContentProps>::default(),
param: Vec::<ParamProps>::default(),
other_element: Vec::<Map::<String, Value>>::default(),
event: Option::<String>::default(),
eventexpr: Option::<String>::default(),
target: Option::<String>::default(),
targetexpr: Option::<String>::default(),
type_value: String::default(),
typeexpr: Option::<String>::default(),
id: Option::<String>::default(),
idlocation: Option::<String>::default(),
delay: String::default(),
delayexpr: Option::<String>::default(),
namelist: Option::<String>::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct StateProps {
#[serde(default)]
pub onentry: Vec<OnentryProps>,
#[serde(default)]
pub onexit: Vec<OnexitProps>,
#[serde(default)]
pub transition: Vec<TransitionProps>,
#[serde(default)]
pub initial: Vec<InitialProps>,
#[serde(default)]
pub state: Vec<StateProps>,
#[serde(default)]
pub parallel: Vec<ParallelProps>,
#[serde(default)]
pub r#final: Vec<FinalProps>,
#[serde(default)]
pub history: Vec<HistoryProps>,
#[serde(default)]
pub datamodel: Vec<DatamodelProps>,
#[serde(default)]
pub invoke: Vec<InvokeProps>,
#[serde(default)]
pub other_element: Vec<Map<String, Value>>,
#[serde(default)]
pub id: Option<String>,
#[serde(default)]
pub initial_attribute: Vec<String>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for StateProps {
fn default() -> Self {
Self {
onentry: Vec::<OnentryProps>::default(),
onexit: Vec::<OnexitProps>::default(),
transition: Vec::<TransitionProps>::default(),
initial: Vec::<InitialProps>::default(),
state: Vec::<StateProps>::default(),
parallel: Vec::<ParallelProps>::default(),
r#final: Vec::<FinalProps>::default(),
history: Vec::<HistoryProps>::default(),
datamodel: Vec::<DatamodelProps>::default(),
invoke: Vec::<InvokeProps>::default(),
other_element: Vec::<Map::<String, Value>>::default(),
id: Option::<String>::default(),
initial_attribute: Vec::<String>::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct TransitionProps {
#[serde(default)]
pub other_element: Vec<Map<String, Value>>,
#[serde(default)]
pub raise_value: Vec<RaiseProps>,
#[serde(default)]
pub if_value: Vec<IfProps>,
#[serde(default)]
pub foreach: Vec<ForeachProps>,
#[serde(default)]
pub send: Vec<SendProps>,
#[serde(default)]
pub script: Vec<ScriptProps>,
#[serde(default)]
pub assign: Vec<AssignProps>,
#[serde(default)]
pub log: Vec<LogProps>,
#[serde(default)]
pub cancel: Vec<CancelProps>,
#[serde(default)]
pub event: Option<String>,
#[serde(default)]
pub cond: Option<String>,
#[serde(default)]
pub target: Vec<String>,
#[serde(default)]
pub type_value: Option<TransitionTypeDatatypeProps>,
#[serde(default)]
pub other_attributes: Map<String, Value>,
}
impl Default for TransitionProps {
fn default() -> Self {
Self {
other_element: Vec::<Map::<String, Value>>::default(),
raise_value: Vec::<RaiseProps>::default(),
if_value: Vec::<IfProps>::default(),
foreach: Vec::<ForeachProps>::default(),
send: Vec::<SendProps>::default(),
script: Vec::<ScriptProps>::default(),
assign: Vec::<AssignProps>::default(),
log: Vec::<LogProps>::default(),
cancel: Vec::<CancelProps>::default(),
event: Option::<String>::default(),
cond: Option::<String>::default(),
target: Vec::<String>::default(),
type_value: Option::<TransitionTypeDatatypeProps>::default(),
other_attributes: Map::<String, Value>::default(),
}
}
}