1use serde::{Deserialize, Serialize};
7
8pub mod batcher;
9pub mod coupled;
10pub mod exclusive_gateway;
11pub mod gate;
12pub mod generator;
13pub mod load_balancer;
14pub mod model;
15pub mod parallel_gateway;
16pub mod processor;
17pub mod stochastic_gate;
18pub mod stopwatch;
19pub mod storage;
20
21pub mod model_factory;
22pub mod model_repr;
23pub mod model_trait;
24
25pub use self::batcher::Batcher;
26pub use self::coupled::{Coupled, ExternalInputCoupling, ExternalOutputCoupling, InternalCoupling};
27pub use self::exclusive_gateway::ExclusiveGateway;
28pub use self::gate::Gate;
29pub use self::generator::Generator;
30pub use self::load_balancer::LoadBalancer;
31pub use self::model::Model;
32pub use self::model_trait::{DevsModel, Reportable, ReportableModel};
33pub use self::parallel_gateway::ParallelGateway;
34pub use self::processor::Processor;
35pub use self::stochastic_gate::StochasticGate;
36pub use self::stopwatch::Stopwatch;
37pub use self::storage::Storage;
38
39pub use self::model_repr::ModelRepr;
40
41#[derive(Debug, Clone)]
42pub struct ModelMessage {
43 pub port_name: String,
44 pub content: String,
45}
46
47#[derive(Debug, Clone, Serialize, Deserialize)]
48pub struct ModelRecord {
49 pub time: f64,
50 pub action: String,
51 pub subject: String,
52}