mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-16 13:05:18 +03:00
Auto merge of #44436 - MicroJoe:master, r=alexcrichton
Add Duration::from_micros This fixes #44400 that explains why it could be useful for embedded designs timing.
This commit is contained in:
@@ -13,7 +13,9 @@
|
||||
|
||||
const NANOS_PER_SEC: u32 = 1_000_000_000;
|
||||
const NANOS_PER_MILLI: u32 = 1_000_000;
|
||||
const NANOS_PER_MICRO: u32 = 1_000;
|
||||
const MILLIS_PER_SEC: u64 = 1_000;
|
||||
const MICROS_PER_SEC: u64 = 1_000_000;
|
||||
|
||||
/// A `Duration` type to represent a span of time, typically used for system
|
||||
/// timeouts.
|
||||
@@ -116,6 +118,27 @@ pub fn from_millis(millis: u64) -> Duration {
|
||||
Duration { secs: secs, nanos: nanos }
|
||||
}
|
||||
|
||||
/// Creates a new `Duration` from the specified number of microseconds.
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(duration_from_micros)]
|
||||
/// use std::time::Duration;
|
||||
///
|
||||
/// let duration = Duration::from_micros(1_000_002);
|
||||
///
|
||||
/// assert_eq!(1, duration.as_secs());
|
||||
/// assert_eq!(2000, duration.subsec_nanos());
|
||||
/// ```
|
||||
#[unstable(feature = "duration_from_micros", issue = "44400")]
|
||||
#[inline]
|
||||
pub fn from_micros(micros: u64) -> Duration {
|
||||
let secs = micros / MICROS_PER_SEC;
|
||||
let nanos = ((micros % MICROS_PER_SEC) as u32) * NANOS_PER_MICRO;
|
||||
Duration { secs: secs, nanos: nanos }
|
||||
}
|
||||
|
||||
/// Returns the number of _whole_ seconds contained by this `Duration`.
|
||||
///
|
||||
/// The returned value does not include the fractional (nanosecond) part of the
|
||||
|
||||
Reference in New Issue
Block a user