evobench_tools/date_and_time/
system_time_with_display.rs

1//! Wrap `SystemTime` so that it has `Display` showing RFC 3339 format
2//! with the `evobench::serde::date_and_time::LOCAL_TIME` setting.
3
4use std::{fmt::Display, ops::Deref, time::SystemTime};
5
6use derive_more::From;
7
8use crate::serde_types::date_and_time::system_time_to_rfc3339;
9
10#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, From)]
11pub struct SystemTimeWithDisplay(pub SystemTime);
12
13impl Deref for SystemTimeWithDisplay {
14    type Target = SystemTime;
15
16    fn deref(&self) -> &Self::Target {
17        &self.0
18    }
19}
20
21impl Display for SystemTimeWithDisplay {
22    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
23        f.write_str(&system_time_to_rfc3339(self.0, None))
24    }
25}