#[derive(Debug, Clone)]
pub struct SchemaNode {
pub name: String,
pub version: String,
pub states: Vec<StateNode>,
pub actions: Vec<ActionNode>,
pub arcs: Vec<ArcNode>,
pub constraints: Vec<ConstraintNode>,
}
#[derive(Debug, Clone)]
pub struct StateNode {
pub id: String,
pub typ: String,
pub kind: String, pub initial: Option<InitialValue>,
pub exported: bool,
}
#[derive(Debug, Clone)]
pub enum InitialValue {
Int(i64),
Str(String),
Nil,
}
#[derive(Debug, Clone)]
pub struct ActionNode {
pub id: String,
pub guard: String,
}
#[derive(Debug, Clone)]
pub struct ArcNode {
pub source: String,
pub target: String,
pub keys: Vec<String>,
pub value: String,
}
#[derive(Debug, Clone)]
pub struct ConstraintNode {
pub id: String,
pub expr: String,
}