diff options
Diffstat (limited to 'crates/common/clock/src/lib.rs')
-rw-r--r-- | crates/common/clock/src/lib.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/crates/common/clock/src/lib.rs b/crates/common/clock/src/lib.rs new file mode 100644 index 00000000..c110e240 --- /dev/null +++ b/crates/common/clock/src/lib.rs @@ -0,0 +1,19 @@ +use chrono::{DateTime, FixedOffset, Local}; +use mockall::automock; + +pub type Timestamp = DateTime<FixedOffset>; + +#[automock] +pub trait Clock: Sync + Send + 'static { + fn now(&self) -> Timestamp; +} + +#[derive(Clone)] +pub struct WallClock; + +impl Clock for WallClock { + fn now(&self) -> Timestamp { + let local_time_now = Local::now(); + local_time_now.with_timezone(local_time_now.offset()) + } +} |