momba_explore/explore/
external.rs

1//! Data structures for communicating with external tools.
2
3use serde::{Deserialize, Serialize};
4use time::TimeType;
5
6use crate::model;
7use crate::time;
8
9use super::actions::Action;
10
11/// Represents a *joint transition* of an automaton network.
12#[derive(Serialize, Deserialize, Eq, PartialEq, Clone, Debug)]
13pub struct Transition<T: time::TimeType> {
14    /// The edges of the participating automata instances.
15    pub(crate) edge_vector: Box<[model::EdgeReference]>,
16    /// The actions with with the respective automata participate.
17    pub(crate) action_vector: Box<[Action]>,
18    /// The action resulting from synchronization.
19    pub(crate) action: Action,
20    /// The clock valuations valid for the transition.
21    pub(crate) valuations: T::External,
22}
23
24// impl<T: time::TimeType> Transition<T> {
25//     /// Returns a JSON string representing the transition.
26//     pub fn json(&self) -> String {
27//         serde_json::to_string(self).unwrap()
28//     }
29// }