logic/
operators.rs

1mod error;
2
3// General operators
4mod and;
5mod implies;
6mod not;
7mod or;
8
9// Temporal-specific operators
10mod always;
11mod eventually;
12mod freeze;
13mod next;
14mod until;
15
16// Re-export module members to make them public
17pub use always::Always;
18pub use and::And;
19pub use eventually::Eventually;
20pub use implies::Implies;
21pub use next::Next;
22pub use not::Not;
23pub use or::Or;
24
25use ordered_float::NotNan;
26
27pub struct Bounds {
28    pub lower: NotNan<f64>,
29    pub upper: NotNan<f64>,
30}
31
32impl From<(f64, f64)> for Bounds {
33    fn from((lower, upper): (f64, f64)) -> Self {
34        Self {
35            lower: NotNan::try_from(lower).unwrap(),
36            upper: NotNan::try_from(upper).unwrap(),
37        }
38    }
39}