diff options
Diffstat (limited to 'vendor/time/src/primitive_date_time.rs')
-rw-r--r-- | vendor/time/src/primitive_date_time.rs | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/vendor/time/src/primitive_date_time.rs b/vendor/time/src/primitive_date_time.rs index b985867d1..83a94610f 100644 --- a/vendor/time/src/primitive_date_time.rs +++ b/vendor/time/src/primitive_date_time.rs @@ -6,7 +6,9 @@ use core::time::Duration as StdDuration; #[cfg(feature = "formatting")] use std::io; -use crate::date_time::offset_kind; +use powerfmt::smart_display::{FormatterOptions, Metadata, SmartDisplay}; + +use crate::date_time::{offset_kind, DateTimeMetadata}; #[cfg(feature = "formatting")] use crate::formatting::Formattable; use crate::internal_macros::{const_try, const_try_opt}; @@ -110,6 +112,7 @@ impl PrimitiveDateTime { /// ```rust /// # use time_macros::{datetime, time}; /// assert_eq!(datetime!(2019-01-01 0:00).time(), time!(0:00)); + /// ``` pub const fn time(self) -> Time { self.0.time() } @@ -806,9 +809,25 @@ impl PrimitiveDateTime { } } +impl SmartDisplay for PrimitiveDateTime { + type Metadata = DateTimeMetadata; + + fn metadata(&self, f: FormatterOptions) -> Metadata<Self> { + self.0.metadata(f).reuse() + } + + fn fmt_with_metadata( + &self, + f: &mut fmt::Formatter<'_>, + metadata: Metadata<Self>, + ) -> fmt::Result { + self.0.fmt_with_metadata(f, metadata.reuse()) + } +} + impl fmt::Display for PrimitiveDateTime { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - self.0.fmt(f) + SmartDisplay::fmt(self, f) } } |