1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
use cap_std::time::{Duration, Instant, SystemTime}; pub enum SystemTimeSpec { SymbolicNow, Absolute(SystemTime), } pub trait WasiSystemClock: Send + Sync { fn resolution(&self) -> Duration; fn now(&self, precision: Duration) -> SystemTime; } pub trait WasiMonotonicClock: Send + Sync { fn resolution(&self) -> Duration; fn now(&self, precision: Duration) -> Instant; } pub struct WasiClocks { pub system: Box<dyn WasiSystemClock>, pub monotonic: Box<dyn WasiMonotonicClock>, pub creation_time: cap_std::time::Instant, }