Skip to content

Commit 99f5136

Browse files
committed
Add as_micros and as_millis methods
1 parent 799eda4 commit 99f5136

File tree

1 file changed

+36
-2
lines changed

1 file changed

+36
-2
lines changed

src/libcore/time.rs

+36-2
Original file line numberDiff line numberDiff line change
@@ -263,18 +263,52 @@ impl Duration {
263263
#[inline]
264264
pub fn subsec_nanos(&self) -> u32 { self.nanos }
265265

266+
/// Returns the total number of milliseconds contained by this `Duration`.
267+
///
268+
/// # Examples
269+
///
270+
/// ```
271+
/// # #![feature(duration_as_u128)]
272+
/// use std::time::Duration;
273+
///
274+
/// let duration = Duration::new(5, 730023852);
275+
/// assert_eq!(duration.as_millis(), 5730);
276+
/// ```
277+
#[unstable(feature = "duration_as_u128", issue = "50202")]
278+
#[inline]
279+
pub fn as_millis(&self) -> u128 {
280+
self.secs as u128 * MILLIS_PER_SEC as u128 + self.nanos as u128 / NANOS_PER_MILLI as u128
281+
}
282+
283+
/// Returns the total number of microseconds contained by this `Duration`.
284+
///
285+
/// # Examples
286+
///
287+
/// ```
288+
/// # #![feature(duration_as_u128)]
289+
/// use std::time::Duration;
290+
///
291+
/// let duration = Duration::new(5, 730023852);
292+
/// assert_eq!(duration.as_micros(), 5730023);
293+
/// ```
294+
#[unstable(feature = "duration_as_u128", issue = "50202")]
295+
#[inline]
296+
pub fn as_micros(&self) -> u128 {
297+
self.secs as u128 * MICROS_PER_SEC as u128 + self.nanos as u128 / NANOS_PER_MICRO as u128
298+
}
299+
266300
/// Returns the total number of nanoseconds contained by this `Duration`.
267301
///
268302
/// # Examples
269303
///
270304
/// ```
271-
/// # #![feature(duration_nanos)]
305+
/// # #![feature(duration_as_u128)]
272306
/// use std::time::Duration;
273307
///
274308
/// let duration = Duration::new(5, 730023852);
275309
/// assert_eq!(duration.as_nanos(), 5730023852);
276310
/// ```
277-
#[unstable(feature = "duration_nanos", issue = "50202")]
311+
#[unstable(feature = "duration_as_u128", issue = "50202")]
278312
#[inline]
279313
pub fn as_nanos(&self) -> u128 {
280314
self.secs as u128 * NANOS_PER_SEC as u128 + self.nanos as u128

0 commit comments

Comments
 (0)