evault_core/traits/
clock.rs1use time::OffsetDateTime;
7
8pub trait Clock: Send + Sync {
10 fn now(&self) -> OffsetDateTime;
12}
13
14#[derive(Debug, Default, Clone, Copy)]
16pub struct SystemClock;
17
18impl Clock for SystemClock {
19 fn now(&self) -> OffsetDateTime {
20 OffsetDateTime::now_utc()
21 }
22}
23
24#[cfg(test)]
25mod tests {
26 use super::*;
27
28 #[test]
29 fn system_clock_returns_recent_time() {
30 let before = OffsetDateTime::now_utc();
31 let t = SystemClock.now();
32 let after = OffsetDateTime::now_utc();
33 assert!(t >= before);
34 assert!(t <= after);
35 }
36}