Sha256: fb2eede865a3e20b9f16af9b23f64dff4f28197161bcd4c5b388624907eab8d5
Contents?: true
Size: 1.25 KB
Versions: 15
Compression:
Stored size: 1.25 KB
Contents
use crate::clocks::{WasiClocks, WasiMonotonicClock, WasiSystemClock}; use cap_std::time::{Duration, Instant, SystemTime}; use cap_std::{ambient_authority, AmbientAuthority}; use cap_time_ext::{MonotonicClockExt, SystemClockExt}; pub struct SystemClock(cap_std::time::SystemClock); impl SystemClock { pub fn new(ambient_authority: AmbientAuthority) -> Self { SystemClock(cap_std::time::SystemClock::new(ambient_authority)) } } impl WasiSystemClock for SystemClock { fn resolution(&self) -> Duration { self.0.resolution() } fn now(&self, precision: Duration) -> SystemTime { self.0.now_with(precision) } } pub struct MonotonicClock(cap_std::time::MonotonicClock); impl MonotonicClock { pub fn new(ambient_authority: AmbientAuthority) -> Self { MonotonicClock(cap_std::time::MonotonicClock::new(ambient_authority)) } } impl WasiMonotonicClock for MonotonicClock { fn resolution(&self) -> Duration { self.0.resolution() } fn now(&self, precision: Duration) -> Instant { self.0.now_with(precision) } } pub fn clocks_ctx() -> WasiClocks { WasiClocks::new() .with_system(SystemClock::new(ambient_authority())) .with_monotonic(MonotonicClock::new(ambient_authority())) }
Version data entries
15 entries across 15 versions & 1 rubygems