]> git.lizzy.rs Git - rust.git/commitdiff
Add as_micros and as_millis methods
authorJonathan Behrens <fintelia@gmail.com>
Sat, 19 May 2018 19:18:07 +0000 (15:18 -0400)
committerJonathan Behrens <fintelia@gmail.com>
Sat, 19 May 2018 19:22:09 +0000 (15:22 -0400)
src/libcore/time.rs

index f49917f848a073f704106583bb26e0f5c366a864..f43d2db51e72e3921cf915434a949407b98ed92f 100644 (file)
@@ -263,18 +263,52 @@ pub fn subsec_micros(&self) -> u32 { self.nanos / NANOS_PER_MICRO }
     #[inline]
     pub fn subsec_nanos(&self) -> u32 { self.nanos }
 
+    /// Returns the total number of milliseconds contained by this `Duration`.
+    ///
+    /// # Examples
+    ///
+    /// ```
+    /// # #![feature(duration_as_u128)]
+    /// use std::time::Duration;
+    ///
+    /// let duration = Duration::new(5, 730023852);
+    /// assert_eq!(duration.as_millis(), 5730);
+    /// ```
+    #[unstable(feature = "duration_as_u128", issue = "50202")]
+    #[inline]
+    pub fn as_millis(&self) -> u128 {
+        self.secs as u128 * MILLIS_PER_SEC as u128 + self.nanos as u128 / NANOS_PER_MILLI as u128
+    }
+
+    /// Returns the total number of microseconds contained by this `Duration`.
+    ///
+    /// # Examples
+    ///
+    /// ```
+    /// # #![feature(duration_as_u128)]
+    /// use std::time::Duration;
+    ///
+    /// let duration = Duration::new(5, 730023852);
+    /// assert_eq!(duration.as_micros(), 5730023);
+    /// ```
+    #[unstable(feature = "duration_as_u128", issue = "50202")]
+    #[inline]
+    pub fn as_micros(&self) -> u128 {
+        self.secs as u128 * MICROS_PER_SEC as u128 + self.nanos as u128 / NANOS_PER_MICRO as u128
+    }
+
     /// Returns the total number of nanoseconds contained by this `Duration`.
     ///
     /// # Examples
     ///
     /// ```
-    /// # #![feature(duration_nanos)]
+    /// # #![feature(duration_as_u128)]
     /// use std::time::Duration;
     ///
     /// let duration = Duration::new(5, 730023852);
     /// assert_eq!(duration.as_nanos(), 5730023852);
     /// ```
-    #[unstable(feature = "duration_nanos", issue = "50202")]
+    #[unstable(feature = "duration_as_u128", issue = "50202")]
     #[inline]
     pub fn as_nanos(&self) -> u128 {
         self.secs as u128 * NANOS_PER_SEC as u128 + self.nanos as u128