@@ -263,18 +263,52 @@ impl Duration {
263
263
#[ inline]
264
264
pub fn subsec_nanos ( & self ) -> u32 { self . nanos }
265
265
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
+
266
300
/// Returns the total number of nanoseconds contained by this `Duration`.
267
301
///
268
302
/// # Examples
269
303
///
270
304
/// ```
271
- /// # #![feature(duration_nanos )]
305
+ /// # #![feature(duration_as_u128 )]
272
306
/// use std::time::Duration;
273
307
///
274
308
/// let duration = Duration::new(5, 730023852);
275
309
/// assert_eq!(duration.as_nanos(), 5730023852);
276
310
/// ```
277
- #[ unstable( feature = "duration_nanos " , issue = "50202" ) ]
311
+ #[ unstable( feature = "duration_as_u128 " , issue = "50202" ) ]
278
312
#[ inline]
279
313
pub fn as_nanos ( & self ) -> u128 {
280
314
self . secs as u128 * NANOS_PER_SEC as u128 + self . nanos as u128
0 commit comments