Trait NumericalDuration

pub trait NumericalDuration: Sealed

Create SignedDurations from numeric literals.

Examples

Basic construction of SignedDurations.

# use time::{SignedDuration, ext::NumericalDuration};
assert_eq!(5.nanoseconds(), SignedDuration::nanoseconds(5));
assert_eq!(5.microseconds(), SignedDuration::microseconds(5));
assert_eq!(5.milliseconds(), SignedDuration::milliseconds(5));
assert_eq!(5.seconds(), SignedDuration::seconds(5));
assert_eq!(5.minutes(), SignedDuration::minutes(5));
assert_eq!(5.hours(), SignedDuration::hours(5));
assert_eq!(5.days(), SignedDuration::days(5));
assert_eq!(5.weeks(), SignedDuration::weeks(5));

Signed integers work as well!

# use time::{SignedDuration, ext::NumericalDuration};
assert_eq!((-5).nanoseconds(), SignedDuration::nanoseconds(-5));
assert_eq!((-5).microseconds(), SignedDuration::microseconds(-5));
assert_eq!((-5).milliseconds(), SignedDuration::milliseconds(-5));
assert_eq!((-5).seconds(), SignedDuration::seconds(-5));
assert_eq!((-5).minutes(), SignedDuration::minutes(-5));
assert_eq!((-5).hours(), SignedDuration::hours(-5));
assert_eq!((-5).days(), SignedDuration::days(-5));
assert_eq!((-5).weeks(), SignedDuration::weeks(-5));

Just like any other SignedDuration, they can be added, subtracted, etc.

# use time::ext::NumericalDuration;
assert_eq!(2.seconds() + 500.milliseconds(), 2_500.milliseconds());
assert_eq!(2.seconds() - 500.milliseconds(), 1_500.milliseconds());

When called on floating point values, any remainder of the floating point value will be truncated. Keep in mind that floating point numbers are inherently imprecise and have limited capacity.

Required Methods

fn nanoseconds(self) -> SignedDuration

Create a SignedDuration from the number of nanoseconds.

fn microseconds(self) -> SignedDuration

Create a SignedDuration from the number of microseconds.

fn milliseconds(self) -> SignedDuration

Create a SignedDuration from the number of milliseconds.

fn seconds(self) -> SignedDuration

Create a SignedDuration from the number of seconds.

fn minutes(self) -> SignedDuration

Create a SignedDuration from the number of minutes.

fn hours(self) -> SignedDuration

Create a SignedDuration from the number of hours.

fn days(self) -> SignedDuration

Create a SignedDuration from the number of days.

fn weeks(self) -> SignedDuration

Create a SignedDuration from the number of weeks.

Implementors