Trait SubsecRound
pub trait SubsecRound
Extension trait for subsecond rounding or truncation to a maximum number of digits. Rounding can be used to decrease the error variance when serializing/persisting to lower precision. Truncation is the default behavior in Chrono display formatting. Either can be used to guarantee equality (e.g. for testing) when round-tripping through a lower precision format.
Required Methods
fn round_subsecs(self, digits: u16) -> SelfReturn a copy rounded to the specified number of subsecond digits. With 9 or more digits, self is returned unmodified. Halfway values are rounded up (away from zero).
Example
# use ; let dt = from_ymd_opt .unwrap .and_hms_milli_opt .unwrap .and_utc; assert_eq!; assert_eq!;fn trunc_subsecs(self, digits: u16) -> SelfReturn a copy truncated to the specified number of subsecond digits. With 9 or more digits, self is returned unmodified.
Example
# use ; let dt = from_ymd_opt .unwrap .and_hms_milli_opt .unwrap .and_utc; assert_eq!; assert_eq!;
Implementors
impl<T> SubsecRound for DateTime<Tz> where T: Add<TimeDelta, Output = T> + Sub<TimeDelta, Output = T> + Timelike,impl<T> SubsecRound for NaiveDateTime where T: Add<TimeDelta, Output = T> + Sub<TimeDelta, Output = T> + Timelike,impl<T> SubsecRound for NaiveTime where T: Add<TimeDelta, Output = T> + Sub<TimeDelta, Output = T> + Timelike,impl<T> SubsecRound for T where T: Timelike + Add<TimeDelta, Output = T> + Sub<TimeDelta, Output = T>,