use crate::DiscreteTime;
#[derive(Clone, Debug)]
pub enum Interrupt {
HaltSimulation(String),
}
#[derive(Default, Debug, Clone)]
pub struct Message {
pub queued_time: DiscreteTime,
pub completed_time: Option<DiscreteTime>,
pub source: String,
pub destination: String,
pub custom_payload: Option<Vec<u8>>,
pub interrupt: Option<Interrupt>,
}
impl Message {
pub fn new<S>(time: DiscreteTime, src: S, dst: S) -> Self
where
S: Into<String>,
{
Self {
queued_time: time,
completed_time: None,
source: src.into(),
destination: dst.into(),
..Default::default()
}
}
}