rtlola_interpreter/
lib.rs1#![forbid(unused_must_use)] #![warn(
17    missing_docs,
18    missing_debug_implementations,
19    missing_copy_implementations,
20    trivial_casts,
21    trivial_numeric_casts,
22    unsafe_code,
23    unstable_features,
24    unused_import_braces,
25    unused_qualifications
26)]
27
28use std::time::Duration;
30
31pub use itertools::izip;
33pub use rtlola_frontend;
35pub use rtlola_frontend::mir as rtlola_mir;
36
37pub use crate::api::input::ValueGetter;
38pub use crate::api::monitor;
40pub use crate::api::monitor::Monitor;
41#[cfg(feature = "queued-api")]
42pub use crate::api::queued;
43#[cfg(feature = "queued-api")]
44pub use crate::api::queued::QueuedMonitor;
45pub use crate::api::{input, output};
46pub use crate::configuration::config_builder::ConfigBuilder;
47pub use crate::configuration::{config, time};
48pub use crate::storage::{Value, ValueConvertError};
49
50mod api;
51mod closuregen;
52mod configuration;
53mod evaluator;
54mod schedule;
55mod storage;
56#[cfg(test)]
57mod tests;
58
59pub type Time = Duration;
61
62#[cfg(feature = "serde")]
63use serde::{Deserialize, Serialize};
64
65#[cfg(feature = "serde")]
67pub trait CondSerialize: Serialize {}
68
69#[cfg(not(feature = "serde"))]
70pub trait CondSerialize {}
72
73#[cfg(feature = "serde")]
74impl<T: Serialize> CondSerialize for T {}
75#[cfg(not(feature = "serde"))]
76impl<T> CondSerialize for T {}
77
78#[cfg(feature = "serde")]
79pub trait CondDeserialize: for<'a> Deserialize<'a> {}
81
82#[cfg(not(feature = "serde"))]
83pub trait CondDeserialize {}
85
86#[cfg(feature = "serde")]
87impl<T: for<'a> Deserialize<'a>> CondDeserialize for T {}
88#[cfg(not(feature = "serde"))]
89impl<T> CondDeserialize for T {}