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// }