pub struct Duration { /* fields omitted */ }
A Duration type to represent a span of time, typically used for system timeouts.
Each Duration is composed of a number of seconds and nanosecond precision. APIs binding a system timeout will typically round up the nanosecond precision if the underlying system does not support that level of precision.
Durations implement many common traits, including Add, Sub, and other ops traits.
use std::time::Duration; let five_seconds = Duration::new(5, 0); let five_seconds_and_five_nanos = five_seconds + Duration::new(0, 5); assert_eq!(five_seconds_and_five_nanos.as_secs(), 5); assert_eq!(five_seconds_and_five_nanos.subsec_nanos(), 5); let ten_millis = Duration::from_millis(10);
impl Duration
[src]
fn new(secs: u64, nanos: u32) -> DurationCreates a new Duration from the specified number of seconds and additional nanosecond precision.
If the nanoseconds is greater than 1 billion (the number of nanoseconds in a second), then it will carry over into the seconds provided.
This constructor will panic if the carry from the nanoseconds overflows the seconds counter.
use std::time::Duration; let five_seconds = Duration::new(5, 0);
fn from_secs(secs: u64) -> DurationCreates a new Duration from the specified number of seconds.
use std::time::Duration; let five_seconds = Duration::from_secs(5);
fn from_millis(millis: u64) -> DurationCreates a new Duration from the specified number of milliseconds.
use std::time::Duration; let five_seconds = Duration::from_millis(5000);
fn as_secs(&self) -> u64Returns the number of whole seconds represented by this Duration.
The extra precision represented by this duration is ignored (i.e. extra nanoseconds are not represented in the returned value).
use std::time::Duration; let five_seconds = Duration::new(5, 0); assert_eq!(five_seconds.as_secs(), 5);
fn subsec_nanos(&self) -> u32Returns the nanosecond precision represented by this Duration.
This method does not return the length of the duration when represented by nanoseconds. The returned number always represents a fractional portion of a second (i.e. it is less than one billion).
use std::time::Duration; let duration = Duration::from_millis(5010); assert_eq!(duration.subsec_nanos(), 10000000);
fn checked_add(self, rhs: Duration) -> Option<Duration>Checked Duration addition. Computes self + other, returning None if overflow occurred.
Basic usage:
use std::time::Duration; assert_eq!(Duration::new(0, 0).checked_add(Duration::new(0, 1)), Some(Duration::new(0, 1))); assert_eq!(Duration::new(1, 0).checked_add(Duration::new(std::u64::MAX, 0)), None);
fn checked_sub(self, rhs: Duration) -> Option<Duration>Checked Duration subtraction. Computes self - other, returning None if the result would be negative or if underflow occurred.
Basic usage:
use std::time::Duration; assert_eq!(Duration::new(0, 1).checked_sub(Duration::new(0, 0)), Some(Duration::new(0, 1))); assert_eq!(Duration::new(0, 0).checked_sub(Duration::new(0, 1)), None);
fn checked_mul(self, rhs: u32) -> Option<Duration>Checked Duration multiplication. Computes self * other, returning None if overflow occurred.
Basic usage:
use std::time::Duration; assert_eq!(Duration::new(0, 500_000_001).checked_mul(2), Some(Duration::new(1, 2))); assert_eq!(Duration::new(std::u64::MAX - 1, 0).checked_mul(2), None);
fn checked_div(self, rhs: u32) -> Option<Duration>Checked Duration division. Computes self / other, returning None if other == 0.
Basic usage:
use std::time::Duration; assert_eq!(Duration::new(2, 0).checked_div(2), Some(Duration::new(1, 0))); assert_eq!(Duration::new(1, 0).checked_div(2), Some(Duration::new(0, 500_000_000))); assert_eq!(Duration::new(2, 0).checked_div(0), None);
impl Clone for Duration
[src]
fn clone(&self) -> DurationReturns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)Performs copy-assignment from source. Read more
impl Copy for Duration
[src]
impl PartialEq for Duration
[src]
fn eq(&self, __arg_0: &Duration) -> boolThis method tests for self and other values to be equal, and is used by ==. Read more
fn ne(&self, __arg_0: &Duration) -> boolThis method tests for !=.
impl Eq for Duration
[src]
impl PartialOrd for Duration
[src]
fn partial_cmp(&self, __arg_0: &Duration) -> Option<Ordering>This method returns an ordering between self and other values if one exists. Read more
fn lt(&self, __arg_0: &Duration) -> boolThis method tests less than (for self and other) and is used by the < operator. Read more
fn le(&self, __arg_0: &Duration) -> boolThis method tests less than or equal to (for self and other) and is used by the <= operator. Read more
fn gt(&self, __arg_0: &Duration) -> boolThis method tests greater than (for self and other) and is used by the > operator. Read more
fn ge(&self, __arg_0: &Duration) -> boolThis method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
impl Ord for Duration
[src]
fn cmp(&self, __arg_0: &Duration) -> OrderingThis method returns an Ordering between self and other. Read more
impl Debug for Duration
[src]
fn fmt(&self, __arg_0: &mut Formatter) -> ResultFormats the value using the given formatter.
impl Hash for Duration
[src]
fn hash<__H: Hasher>(&self, __arg_0: &mut __H)Feeds this value into the state given, updating the hasher as necessary.
fn hash_slice<H>(data: &[Self], state: &mut H) where H: HasherFeeds a slice of this type into the state provided.
impl Default for Duration
[src]
fn default() -> DurationReturns the "default value" for a type. Read more
impl Add for Duration
[src]
type Output = DurationThe resulting type after applying the + operator
fn add(self, rhs: Duration) -> DurationThe method for the + operator
impl AddAssign for Duration
fn add_assign(&mut self, rhs: Duration)The method for the += operator
impl Sub for Duration
[src]
type Output = DurationThe resulting type after applying the - operator
fn sub(self, rhs: Duration) -> DurationThe method for the - operator
impl SubAssign for Duration
fn sub_assign(&mut self, rhs: Duration)The method for the -= operator
impl Mul<u32> for Duration
[src]
type Output = DurationThe resulting type after applying the * operator
fn mul(self, rhs: u32) -> DurationThe method for the * operator
impl MulAssign<u32> for Duration
fn mul_assign(&mut self, rhs: u32)The method for the *= operator
impl Div<u32> for Duration
[src]
type Output = DurationThe resulting type after applying the / operator
fn div(self, rhs: u32) -> DurationThe method for the / operator
impl DivAssign<u32> for Duration
fn div_assign(&mut self, rhs: u32)The method for the /= operator
impl Sum for Duration
fn sum<I: Iterator<Item=Duration>>(iter: I) -> DurationMethod which takes an iterator and generates Self from the elements by "summing up" the items. Read more
impl<'a> Sum<&'a Duration> for Duration
fn sum<I: Iterator<Item=&'a Duration>>(iter: I) -> DurationMethod which takes an iterator and generates Self from the elements by "summing up" the items. Read more
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/time/struct.Duration.html