pub trait DevsModel: ModelClone + SerializableModel {
fn events_ext(
&mut self,
incoming_message: &ModelMessage,
services: &mut Services
) -> Result<(), SimulationError>;
fn events_int(
&mut self,
services: &mut Services
) -> Result<Vec<ModelMessage>, SimulationError>;
fn time_advance(&mut self, time_delta: f64);
fn until_next_event(&self) -> f64;
}
Expand description
The DevsModel
trait defines everything required for a model to operate
within the discrete event simulation. The simulator formalism (Discrete
Event System Specification) requires events_ext
, events_int
,
time_advance
, and until_next_event
.