From 61d8bdbacc24ae2a0cbc1347a262ed1765d255e9 Mon Sep 17 00:00:00 2001 From: Christopher Rabotin Date: Sun, 31 Dec 2017 15:24:53 -0700 Subject: [PATCH 1/3] Add std::time::Duration::{from_days, from_hours, from_mins} --- src/libstd/time/duration.rs | 57 +++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/src/libstd/time/duration.rs b/src/libstd/time/duration.rs index 15ddb62bab5c8..42ced54a23e58 100644 --- a/src/libstd/time/duration.rs +++ b/src/libstd/time/duration.rs @@ -80,6 +80,63 @@ impl Duration { Duration { secs: secs, nanos: nanos } } + /// Creates a new `Duration` from the specified number of whole days. + /// + /// # Examples + /// + /// ``` + /// #![feature(duration_from_hours)] + /// use std::time::Duration; + /// + /// let duration = Duration::from_days(1); + /// + /// assert_eq!(86_400, duration.as_secs()); + /// assert_eq!(0, duration.subsec_nanos()); + /// ``` + #[unstable(feature = "duration_from_hours", issue = "47097")] + #[inline] + pub fn from_days(days: u64) -> Duration { + Duration { secs: 86_400*days, nanos: 0 } + } + + /// Creates a new `Duration` from the specified number of whole hours. + /// + /// # Examples + /// + /// ``` + /// #![feature(duration_from_hours)] + /// use std::time::Duration; + /// + /// let duration = Duration::from_hours(2); + /// + /// assert_eq!(7200, duration.as_secs()); + /// assert_eq!(0, duration.subsec_nanos()); + /// ``` + #[unstable(feature = "duration_from_hours", issue = "47097")] + #[inline] + pub fn from_hours(hours: u64) -> Duration { + Duration { secs: 3600*hours, nanos: 0 } + } + + /// Creates a new `Duration` from the specified number of whole minutes. + /// + /// # Examples + /// + /// ``` + /// #![feature(duration_from_mins)] + /// use std::time::Duration; + /// + /// let duration = Duration::from_mins(5); + /// + /// assert_eq!(300, duration.as_secs()); + /// assert_eq!(0, duration.subsec_nanos()); + /// ``` + #[unstable(feature = "duration_from_mins", issue = "47097")] + #[inline] + pub fn from_mins(mins: u64) -> Duration { + Duration { secs: 60*mins, nanos: 0 } + } + /// Creates a new `Duration` from the specified number of whole seconds. /// /// # Examples From 84279c70552f849654ed254ad74be5d155c88de0 Mon Sep 17 00:00:00 2001 From: Christopher Rabotin Date: Sun, 31 Dec 2017 18:12:04 -0700 Subject: [PATCH 2/3] Clarify from_days docs. Group all new features into one feature name --- src/libstd/time/duration.rs | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/libstd/time/duration.rs b/src/libstd/time/duration.rs index 42ced54a23e58..8466f707edabf 100644 --- a/src/libstd/time/duration.rs +++ b/src/libstd/time/duration.rs @@ -80,12 +80,14 @@ impl Duration { Duration { secs: secs, nanos: nanos } } - /// Creates a new `Duration` from the specified number of whole days. + /// Creates a new `Duration` from the specified number of whole days. Note that days are + /// strictly interpreted as duration math, i.e. one day is strictly twenty-four hours. This + /// function does not perform any calendar math or timezone math. /// /// # Examples /// /// ``` - /// #![feature(duration_from_hours)] + /// #![feature(duration_from)] /// use std::time::Duration; /// /// let duration = Duration::from_days(1); @@ -93,7 +95,7 @@ impl Duration { /// assert_eq!(86_400, duration.as_secs()); /// assert_eq!(0, duration.subsec_nanos()); /// ``` - #[unstable(feature = "duration_from_hours", issue = "47097")] + #[unstable(feature = "duration_from", issue = "47097")] #[inline] pub fn from_days(days: u64) -> Duration { Duration { secs: 86_400*days, nanos: 0 } @@ -104,7 +106,7 @@ impl Duration { /// # Examples /// /// ``` - /// #![feature(duration_from_hours)] + /// #![feature(duration_from)] /// use std::time::Duration; /// /// let duration = Duration::from_hours(2); @@ -112,7 +114,7 @@ impl Duration { /// assert_eq!(7200, duration.as_secs()); /// assert_eq!(0, duration.subsec_nanos()); /// ``` - #[unstable(feature = "duration_from_hours", issue = "47097")] + #[unstable(feature = "duration_from", issue = "47097")] #[inline] pub fn from_hours(hours: u64) -> Duration { Duration { secs: 3600*hours, nanos: 0 } @@ -123,7 +125,7 @@ impl Duration { /// # Examples /// /// ``` - /// #![feature(duration_from_mins)] + /// #![feature(duration_from)] /// use std::time::Duration; /// /// let duration = Duration::from_mins(5); @@ -131,10 +133,10 @@ impl Duration { /// assert_eq!(300, duration.as_secs()); /// assert_eq!(0, duration.subsec_nanos()); /// ``` - #[unstable(feature = "duration_from_mins", issue = "47097")] + #[unstable(feature = "duration_from", issue = "47097")] #[inline] - pub fn from_mins(mins: u64) -> Duration { - Duration { secs: 60*mins, nanos: 0 } + pub fn from_minutes(minutes: u64) -> Duration { + Duration { secs: 60*minutes, nanos: 0 } } /// Creates a new `Duration` from the specified number of whole seconds. From fb71cbd052f82e81679e6b4489a19a6067dbfdae Mon Sep 17 00:00:00 2001 From: Christopher Rabotin Date: Mon, 1 Jan 2018 17:02:29 -0700 Subject: [PATCH 3/3] Remove `from_days` constructor. Fix `from_minutes` test. --- src/libstd/time/duration.rs | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/src/libstd/time/duration.rs b/src/libstd/time/duration.rs index 8466f707edabf..9f9a9ae36370f 100644 --- a/src/libstd/time/duration.rs +++ b/src/libstd/time/duration.rs @@ -80,27 +80,6 @@ impl Duration { Duration { secs: secs, nanos: nanos } } - /// Creates a new `Duration` from the specified number of whole days. Note that days are - /// strictly interpreted as duration math, i.e. one day is strictly twenty-four hours. This - /// function does not perform any calendar math or timezone math. - /// - /// # Examples - /// - /// ``` - /// #![feature(duration_from)] - /// use std::time::Duration; - /// - /// let duration = Duration::from_days(1); - /// - /// assert_eq!(86_400, duration.as_secs()); - /// assert_eq!(0, duration.subsec_nanos()); - /// ``` - #[unstable(feature = "duration_from", issue = "47097")] - #[inline] - pub fn from_days(days: u64) -> Duration { - Duration { secs: 86_400*days, nanos: 0 } - } - /// Creates a new `Duration` from the specified number of whole hours. /// /// # Examples @@ -128,7 +107,7 @@ impl Duration { /// #![feature(duration_from)] /// use std::time::Duration; /// - /// let duration = Duration::from_mins(5); + /// let duration = Duration::from_minutes(5); /// /// assert_eq!(300, duration.as_secs()); /// assert_eq!(0, duration.subsec_nanos());