[][src]Trait time::NumericalStdDuration

pub trait NumericalStdDuration {
    fn std_nanoseconds(self) -> StdDuration;
fn std_microseconds(self) -> StdDuration;
fn std_milliseconds(self) -> StdDuration;
fn std_seconds(self) -> StdDuration;
fn std_minutes(self) -> StdDuration;
fn std_hours(self) -> StdDuration;
fn std_days(self) -> StdDuration;
fn std_weeks(self) -> StdDuration; }

Create std::time::Durations from primitive and core numeric types.

This trait can be imported (alongside others) with use time::prelude::*.

Due to limitations in rustc, these methods are currently not const fn. See RFC 2632 for details.

Examples

Basic construction of std::time::Durations.

assert_eq!(5.std_nanoseconds(), Duration::from_nanos(5));
assert_eq!(5.std_microseconds(), Duration::from_micros(5));
assert_eq!(5.std_milliseconds(), Duration::from_millis(5));
assert_eq!(5.std_seconds(), Duration::from_secs(5));
assert_eq!(5.std_minutes(), Duration::from_secs(5 * 60));
assert_eq!(5.std_hours(), Duration::from_secs(5 * 3_600));
assert_eq!(5.std_days(), Duration::from_secs(5 * 86_400));
assert_eq!(5.std_weeks(), Duration::from_secs(5 * 604_800));

Just like any other std::time::Duration, they can be added, subtracted, etc.

assert_eq!(
    2.std_seconds() + 500.std_milliseconds(),
    2_500.std_milliseconds()
);
assert_eq!(
    2.std_seconds() - 500.std_milliseconds(),
    1_500.std_milliseconds()
);

As floats can not be used to construct via anything other than Duration::from_secs_f32 and Duration::from_secs_f64, floats do not implement NumericalStdDuration.

This example deliberately fails to compile
5.0.std_seconds();

Required methods

fn std_nanoseconds(self) -> StdDuration

Create a std::time::Duration from the number of nanoseconds.

fn std_microseconds(self) -> StdDuration

Create a std::time::Duration from the number of microseconds.

fn std_milliseconds(self) -> StdDuration

Create a std::time::Duration from the number of milliseconds.

fn std_seconds(self) -> StdDuration

Create a std::time::Duration from the number of seconds.

fn std_minutes(self) -> StdDuration

Create a std::time::Duration from the number of minutes.

fn std_hours(self) -> StdDuration

Create a std::time::Duration from the number of hours.

fn std_days(self) -> StdDuration

Create a std::time::Duration from the number of days.

fn std_weeks(self) -> StdDuration

Create a std::time::Duration from the number of weeks.

Loading content...

Implementations on Foreign Types

impl NumericalStdDuration for u8[src]

impl NumericalStdDuration for u16[src]

impl NumericalStdDuration for u32[src]

impl NumericalStdDuration for u64[src]

impl NumericalStdDuration for NonZeroU8[src]

impl NumericalStdDuration for NonZeroU16[src]

impl NumericalStdDuration for NonZeroU32[src]

impl NumericalStdDuration for NonZeroU64[src]

impl NumericalStdDuration for i32[src]

Implement on i32 because that's the default type for integers. This performs a runtime check and panics if the value is negative.

Loading content...

Implementors

Loading content...