use std::time::{Duration, Instant, SystemTime};
use super::TimeProvider;
#[derive(Default, Clone, Copy)] pub struct SystemTimeProvider;
impl TimeProvider for SystemTimeProvider {
fn new() -> Self {
Self
}
fn now(&self) -> SystemTime {
SystemTime::now()
}
fn elapsed(&self, earlier: SystemTime) -> Duration {
earlier.elapsed().unwrap_or_else(|_| Duration::from_secs(0))
}
fn instant_now(&self) -> Instant {
Instant::now()
}
fn instant_elapsed(&self, earlier: Instant) -> Duration {
earlier.elapsed()
}
}