about summary refs log tree commit diff
path: root/src/libcore
diff options
context:
space:
mode:
authorJonathan Behrens <fintelia@gmail.com>2018-05-19 15:18:07 -0400
committerJonathan Behrens <fintelia@gmail.com>2018-05-19 15:22:09 -0400
commit99f5136f9e2df5d60b371e9e19d2f6efe0d2e59e (patch)
treeefddde42b438b3592e51e6c6b8815eebbca3b84a /src/libcore
parent799eda4128ad4517782de261a62d4284268de050 (diff)
downloadrust-99f5136f9e2df5d60b371e9e19d2f6efe0d2e59e.tar.gz
rust-99f5136f9e2df5d60b371e9e19d2f6efe0d2e59e.zip
Add as_micros and as_millis methods
Diffstat (limited to 'src/libcore')
-rw-r--r--src/libcore/time.rs38
1 files changed, 36 insertions, 2 deletions
diff --git a/src/libcore/time.rs b/src/libcore/time.rs
index f49917f848a..f43d2db51e7 100644
--- a/src/libcore/time.rs
+++ b/src/libcore/time.rs
@@ -263,18 +263,52 @@ impl Duration {
     #[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