pub struct TimeFormat<T: Borrow<Duration>>(pub T);
Expand description
A formatting newtype for providing a
Display
implementation. This format is
meant to be used for printing performance measurements.
§Behaviour
secs > 0
=> seconds with precision 3secs > 0.001
=> milliseconds with precision 3secs > 0.000_001
=> microseconds with precision 3- otherwise => nanoseconds
By default the duration is formatted using abbreviated units
(e.g. 1.234ms
).
If the the format string is specified with the alternate flag {:#}
,
the duration is formatted using the full unit name instead
(e.g. 1.234 milliseconds
).
§Examples
use std::time::Duration;
use floating_duration::TimeFormat;
let dur = Duration::new(0, 461_933);
let formatted = format!("{}", TimeFormat(dur));
assert_eq!(formatted, "461.933µs");
let alternate = format!("{:#}", TimeFormat(dur));
assert_eq!(alternate, "461.933 microseconds");
Tuple Fields§
§0: T
Trait Implementations§
Source§impl<T: Clone + Borrow<Duration>> Clone for TimeFormat<T>
impl<T: Clone + Borrow<Duration>> Clone for TimeFormat<T>
Source§fn clone(&self) -> TimeFormat<T>
fn clone(&self) -> TimeFormat<T>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreimpl<T: Copy + Borrow<Duration>> Copy for TimeFormat<T>
Auto Trait Implementations§
impl<T> Freeze for TimeFormat<T>where
T: Freeze,
impl<T> RefUnwindSafe for TimeFormat<T>where
T: RefUnwindSafe,
impl<T> Send for TimeFormat<T>where
T: Send,
impl<T> Sync for TimeFormat<T>where
T: Sync,
impl<T> Unpin for TimeFormat<T>where
T: Unpin,
impl<T> UnwindSafe for TimeFormat<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more