#[derive(Clone, PartialEq, Debug)]
pub struct GeneralContext {
pub lf_names : Vec<String>,
pub ms_names : Vec<String>
}
#[derive(Clone, PartialEq, Debug, Eq, PartialOrd, Ord, Hash)]
pub enum MinimalActionKind {
Emission,
Reception
}
#[derive(Clone, PartialEq, Debug, Eq, PartialOrd, Ord, Hash)]
pub struct MinimalAction {
pub lf_id : usize,
pub ms_id : usize,
pub kind : MinimalActionKind
}
impl MinimalAction {
pub fn new(
lf_id : usize,
ms_id : usize,
kind : MinimalActionKind) -> MinimalAction {
MinimalAction{lf_id,ms_id,kind}
}
}
#[derive(Clone, PartialEq, Debug, Eq, PartialOrd, Ord, Hash)]
pub enum MinimalInteraction {
Empty,
Action(MinimalAction),
Strict(Box<MinimalInteraction>,Box<MinimalInteraction>),
Seq(Box<MinimalInteraction>,Box<MinimalInteraction>),
Alt(Box<MinimalInteraction>,Box<MinimalInteraction>),
Par(Box<MinimalInteraction>,Box<MinimalInteraction>),
Loop(Box<MinimalInteraction>)
}