about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-02-23 09:25:29 +0100
committerGitHub <noreply@github.com>2019-02-23 09:25:29 +0100
commit73e661a0a5acf98ae932cceca00212578aeeea33 (patch)
tree1214bd97d1bc2ab3a7a5709c667c5b8f7e225fcf
parent18dd2d2fbe3cacc4bea71c0a7df831a62605a367 (diff)
parentc6d24cd50435f008cc8bf1a00a656b36ca892b5d (diff)
downloadrust-73e661a0a5acf98ae932cceca00212578aeeea33.tar.gz
rust-73e661a0a5acf98ae932cceca00212578aeeea33.zip
Rollup merge of #58595 - stjepang:make-duration-consts-associated, r=oli-obk
Turn duration consts into associated consts

As suggested in https://github.com/rust-lang/rust/issues/57391#issuecomment-459658236, I'm moving `Duration` constants (`SECOND`, `MILLISECOND` and so on; currently behind unstable `duration_constants` feature) into the `impl Duration` block.

cc @frewsxcv @SimonSapin
-rw-r--r--src/libcore/time.rs68
-rw-r--r--src/libstd/time.rs3
2 files changed, 52 insertions, 19 deletions
diff --git a/src/libcore/time.rs b/src/libcore/time.rs
index ac7e11754aa..91161ca477e 100644
--- a/src/libcore/time.rs
+++ b/src/libcore/time.rs
@@ -23,22 +23,6 @@ const MILLIS_PER_SEC: u64 = 1_000;
 const MICROS_PER_SEC: u64 = 1_000_000;
 const MAX_NANOS_F64: f64 = ((u64::MAX as u128 + 1)*(NANOS_PER_SEC as u128)) as f64;
 
-/// The duration of one second.
-#[unstable(feature = "duration_constants", issue = "57391")]
-pub const SECOND: Duration = Duration::from_secs(1);
-
-/// The duration of one millisecond.
-#[unstable(feature = "duration_constants", issue = "57391")]
-pub const MILLISECOND: Duration = Duration::from_millis(1);
-
-/// The duration of one microsecond.
-#[unstable(feature = "duration_constants", issue = "57391")]
-pub const MICROSECOND: Duration = Duration::from_micros(1);
-
-/// The duration of one nanosecond.
-#[unstable(feature = "duration_constants", issue = "57391")]
-pub const NANOSECOND: Duration = Duration::from_nanos(1);
-
 /// A `Duration` type to represent a span of time, typically used for system
 /// timeouts.
 ///
@@ -75,6 +59,58 @@ pub struct Duration {
 }
 
 impl Duration {
+    /// The duration of one second.
+    ///
+    /// # Examples
+    ///
+    /// ```
+    /// #![feature(duration_constants)]
+    /// use std::time::Duration;
+    ///
+    /// assert_eq!(Duration::SECOND, Duration::from_secs(1));
+    /// ```
+    #[unstable(feature = "duration_constants", issue = "57391")]
+    pub const SECOND: Duration = Duration::from_secs(1);
+
+    /// The duration of one millisecond.
+    ///
+    /// # Examples
+    ///
+    /// ```
+    /// #![feature(duration_constants)]
+    /// use std::time::Duration;
+    ///
+    /// assert_eq!(Duration::MILLISECOND, Duration::from_millis(1));
+    /// ```
+    #[unstable(feature = "duration_constants", issue = "57391")]
+    pub const MILLISECOND: Duration = Duration::from_millis(1);
+
+    /// The duration of one microsecond.
+    ///
+    /// # Examples
+    ///
+    /// ```
+    /// #![feature(duration_constants)]
+    /// use std::time::Duration;
+    ///
+    /// assert_eq!(Duration::MICROSECOND, Duration::from_micros(1));
+    /// ```
+    #[unstable(feature = "duration_constants", issue = "57391")]
+    pub const MICROSECOND: Duration = Duration::from_micros(1);
+
+    /// The duration of one nanosecond.
+    ///
+    /// # Examples
+    ///
+    /// ```
+    /// #![feature(duration_constants)]
+    /// use std::time::Duration;
+    ///
+    /// assert_eq!(Duration::NANOSECOND, Duration::from_nanos(1));
+    /// ```
+    #[unstable(feature = "duration_constants", issue = "57391")]
+    pub const NANOSECOND: Duration = Duration::from_nanos(1);
+
     /// Creates a new `Duration` from the specified number of whole seconds and
     /// additional nanoseconds.
     ///
diff --git a/src/libstd/time.rs b/src/libstd/time.rs
index e1c2b2b1d4f..e1f5e1fcb93 100644
--- a/src/libstd/time.rs
+++ b/src/libstd/time.rs
@@ -23,9 +23,6 @@ use sys_common::mutex::Mutex;
 #[stable(feature = "time", since = "1.3.0")]
 pub use core::time::Duration;
 
-#[unstable(feature = "duration_constants", issue = "57391")]
-pub use core::time::{SECOND, MILLISECOND, MICROSECOND, NANOSECOND};
-
 /// A measurement of a monotonically nondecreasing clock.
 /// Opaque and useful only with `Duration`.
 ///