summaryrefslogtreecommitdiff
path: root/vendor/time/src/ext
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/time/src/ext')
-rw-r--r--vendor/time/src/ext/digit_count.rs26
-rw-r--r--vendor/time/src/ext/instant.rs98
-rw-r--r--vendor/time/src/ext/mod.rs13
-rw-r--r--vendor/time/src/ext/numerical_duration.rs140
-rw-r--r--vendor/time/src/ext/numerical_std_duration.rs192
5 files changed, 0 insertions, 469 deletions
diff --git a/vendor/time/src/ext/digit_count.rs b/vendor/time/src/ext/digit_count.rs
deleted file mode 100644
index fb42ce9e..00000000
--- a/vendor/time/src/ext/digit_count.rs
+++ /dev/null
@@ -1,26 +0,0 @@
-use num_conv::prelude::*;
-
-/// A trait that indicates the formatted width of the value can be determined.
-///
-/// Note that this should not be implemented for any signed integers. This forces the caller to
-/// write the sign if desired.
-pub(crate) trait DigitCount {
- /// The number of digits in the stringified value.
- fn num_digits(self) -> u8;
-}
-
-/// A macro to generate implementations of `DigitCount` for unsigned integers.
-macro_rules! impl_digit_count {
- ($($t:ty),* $(,)?) => {
- $(impl DigitCount for $t {
- fn num_digits(self) -> u8 {
- match self.checked_ilog10() {
- Some(n) => n.truncate::<u8>() + 1,
- None => 1,
- }
- }
- })*
- };
-}
-
-impl_digit_count!(u8, u16, u32);
diff --git a/vendor/time/src/ext/instant.rs b/vendor/time/src/ext/instant.rs
deleted file mode 100644
index 313ad5b1..00000000
--- a/vendor/time/src/ext/instant.rs
+++ /dev/null
@@ -1,98 +0,0 @@
-use std::time::Instant as StdInstant;
-
-use crate::Duration;
-
-/// Sealed trait to prevent downstream implementations.
-mod sealed {
- /// A trait that cannot be implemented by downstream users.
- pub trait Sealed: Sized {}
- impl Sealed for std::time::Instant {}
-}
-
-/// An extension trait for [`std::time::Instant`] that adds methods for
-/// [`time::Duration`](Duration)s.
-pub trait InstantExt: sealed::Sealed {
- /// # Panics
- ///
- /// This function may panic if the resulting point in time cannot be represented by the
- /// underlying data structure. See [`InstantExt::checked_add_signed`] for a non-panicking
- /// version.
- fn add_signed(self, duration: Duration) -> Self {
- self.checked_add_signed(duration)
- .expect("overflow when adding duration to instant")
- }
-
- /// # Panics
- ///
- /// This function may panic if the resulting point in time cannot be represented by the
- /// underlying data structure. See [`InstantExt::checked_sub_signed`] for a non-panicking
- /// version.
- fn sub_signed(self, duration: Duration) -> Self {
- self.checked_sub_signed(duration)
- .expect("overflow when subtracting duration from instant")
- }
-
- /// Returns `Some(t)` where `t` is the time `self.checked_add_signed(duration)` if `t` can be
- /// represented as `Instant` (which means it's inside the bounds of the underlying data
- /// structure), `None` otherwise.
- fn checked_add_signed(&self, duration: Duration) -> Option<Self>;
-
- /// Returns `Some(t)` where `t` is the time `self.checked_sub_signed(duration)` if `t` can be
- /// represented as `Instant` (which means it's inside the bounds of the underlying data
- /// structure), `None` otherwise.
- fn checked_sub_signed(&self, duration: Duration) -> Option<Self>;
-
- /// Returns the amount of time elapsed from another instant to this one. This will be negative
- /// if `earlier` is later than `self`.
- ///
- /// # Example
- ///
- /// ```rust
- /// # use std::thread::sleep;
- /// # use std::time::{Duration, Instant};
- /// # use time::ext::InstantExt;
- /// let now = Instant::now();
- /// sleep(Duration::new(1, 0));
- /// let new_now = Instant::now();
- /// println!("{:?}", new_now.signed_duration_since(now)); // positive
- /// println!("{:?}", now.signed_duration_since(new_now)); // negative
- /// ```
- fn signed_duration_since(&self, earlier: Self) -> Duration;
-}
-
-impl InstantExt for StdInstant {
- fn checked_add_signed(&self, duration: Duration) -> Option<Self> {
- if duration.is_positive() {
- self.checked_add(duration.unsigned_abs())
- } else if duration.is_negative() {
- self.checked_sub(duration.unsigned_abs())
- } else {
- debug_assert!(duration.is_zero());
- Some(*self)
- }
- }
-
- fn checked_sub_signed(&self, duration: Duration) -> Option<Self> {
- if duration.is_positive() {
- self.checked_sub(duration.unsigned_abs())
- } else if duration.is_negative() {
- self.checked_add(duration.unsigned_abs())
- } else {
- debug_assert!(duration.is_zero());
- Some(*self)
- }
- }
-
- fn signed_duration_since(&self, earlier: Self) -> Duration {
- if *self > earlier {
- self.saturating_duration_since(earlier)
- .try_into()
- .unwrap_or(Duration::MAX)
- } else {
- earlier
- .saturating_duration_since(*self)
- .try_into()
- .map_or(Duration::MIN, |d: Duration| -d)
- }
- }
-}
diff --git a/vendor/time/src/ext/mod.rs b/vendor/time/src/ext/mod.rs
deleted file mode 100644
index 7cc2d0d9..00000000
--- a/vendor/time/src/ext/mod.rs
+++ /dev/null
@@ -1,13 +0,0 @@
-//! Extension traits.
-
-mod digit_count;
-#[cfg(feature = "std")]
-mod instant;
-mod numerical_duration;
-mod numerical_std_duration;
-
-pub(crate) use self::digit_count::DigitCount;
-#[cfg(feature = "std")]
-pub use self::instant::InstantExt;
-pub use self::numerical_duration::NumericalDuration;
-pub use self::numerical_std_duration::NumericalStdDuration;
diff --git a/vendor/time/src/ext/numerical_duration.rs b/vendor/time/src/ext/numerical_duration.rs
deleted file mode 100644
index a1e93cc4..00000000
--- a/vendor/time/src/ext/numerical_duration.rs
+++ /dev/null
@@ -1,140 +0,0 @@
-use crate::convert::*;
-use crate::Duration;
-
-/// Sealed trait to prevent downstream implementations.
-mod sealed {
- /// A trait that cannot be implemented by downstream users.
- pub trait Sealed {}
- impl Sealed for i64 {}
- impl Sealed for f64 {}
-}
-
-/// Create [`Duration`]s from numeric literals.
-///
-/// # Examples
-///
-/// Basic construction of [`Duration`]s.
-///
-/// ```rust
-/// # use time::{Duration, ext::NumericalDuration};
-/// assert_eq!(5.nanoseconds(), Duration::nanoseconds(5));
-/// assert_eq!(5.microseconds(), Duration::microseconds(5));
-/// assert_eq!(5.milliseconds(), Duration::milliseconds(5));
-/// assert_eq!(5.seconds(), Duration::seconds(5));
-/// assert_eq!(5.minutes(), Duration::minutes(5));
-/// assert_eq!(5.hours(), Duration::hours(5));
-/// assert_eq!(5.days(), Duration::days(5));
-/// assert_eq!(5.weeks(), Duration::weeks(5));
-/// ```
-///
-/// Signed integers work as well!
-///
-/// ```rust
-/// # use time::{Duration, ext::NumericalDuration};
-/// assert_eq!((-5).nanoseconds(), Duration::nanoseconds(-5));
-/// assert_eq!((-5).microseconds(), Duration::microseconds(-5));
-/// assert_eq!((-5).milliseconds(), Duration::milliseconds(-5));
-/// assert_eq!((-5).seconds(), Duration::seconds(-5));
-/// assert_eq!((-5).minutes(), Duration::minutes(-5));
-/// assert_eq!((-5).hours(), Duration::hours(-5));
-/// assert_eq!((-5).days(), Duration::days(-5));
-/// assert_eq!((-5).weeks(), Duration::weeks(-5));
-/// ```
-///
-/// Just like any other [`Duration`], they can be added, subtracted, etc.
-///
-/// ```rust
-/// # use time::ext::NumericalDuration;
-/// assert_eq!(2.seconds() + 500.milliseconds(), 2_500.milliseconds());
-/// assert_eq!(2.seconds() - 500.milliseconds(), 1_500.milliseconds());
-/// ```
-///
-/// When called on floating point values, any remainder of the floating point value will be
-/// truncated. Keep in mind that floating point numbers are inherently imprecise and have
-/// limited capacity.
-pub trait NumericalDuration: sealed::Sealed {
- /// Create a [`Duration`] from the number of nanoseconds.
- fn nanoseconds(self) -> Duration;
- /// Create a [`Duration`] from the number of microseconds.
- fn microseconds(self) -> Duration;
- /// Create a [`Duration`] from the number of milliseconds.
- fn milliseconds(self) -> Duration;
- /// Create a [`Duration`] from the number of seconds.
- fn seconds(self) -> Duration;
- /// Create a [`Duration`] from the number of minutes.
- fn minutes(self) -> Duration;
- /// Create a [`Duration`] from the number of hours.
- fn hours(self) -> Duration;
- /// Create a [`Duration`] from the number of days.
- fn days(self) -> Duration;
- /// Create a [`Duration`] from the number of weeks.
- fn weeks(self) -> Duration;
-}
-
-impl NumericalDuration for i64 {
- fn nanoseconds(self) -> Duration {
- Duration::nanoseconds(self)
- }
-
- fn microseconds(self) -> Duration {
- Duration::microseconds(self)
- }
-
- fn milliseconds(self) -> Duration {
- Duration::milliseconds(self)
- }
-
- fn seconds(self) -> Duration {
- Duration::seconds(self)
- }
-
- fn minutes(self) -> Duration {
- Duration::minutes(self)
- }
-
- fn hours(self) -> Duration {
- Duration::hours(self)
- }
-
- fn days(self) -> Duration {
- Duration::days(self)
- }
-
- fn weeks(self) -> Duration {
- Duration::weeks(self)
- }
-}
-
-impl NumericalDuration for f64 {
- fn nanoseconds(self) -> Duration {
- Duration::nanoseconds(self as i64)
- }
-
- fn microseconds(self) -> Duration {
- Duration::nanoseconds((self * Nanosecond::per(Microsecond) as Self) as i64)
- }
-
- fn milliseconds(self) -> Duration {
- Duration::nanoseconds((self * Nanosecond::per(Millisecond) as Self) as i64)
- }
-
- fn seconds(self) -> Duration {
- Duration::nanoseconds((self * Nanosecond::per(Second) as Self) as i64)
- }
-
- fn minutes(self) -> Duration {
- Duration::nanoseconds((self * Nanosecond::per(Minute) as Self) as i64)
- }
-
- fn hours(self) -> Duration {
- Duration::nanoseconds((self * Nanosecond::per(Hour) as Self) as i64)
- }
-
- fn days(self) -> Duration {
- Duration::nanoseconds((self * Nanosecond::per(Day) as Self) as i64)
- }
-
- fn weeks(self) -> Duration {
- Duration::nanoseconds((self * Nanosecond::per(Week) as Self) as i64)
- }
-}
diff --git a/vendor/time/src/ext/numerical_std_duration.rs b/vendor/time/src/ext/numerical_std_duration.rs
deleted file mode 100644
index d6bc7bab..00000000
--- a/vendor/time/src/ext/numerical_std_duration.rs
+++ /dev/null
@@ -1,192 +0,0 @@
-use core::time::Duration as StdDuration;
-
-use num_conv::prelude::*;
-
-use crate::convert::*;
-
-/// Sealed trait to prevent downstream implementations.
-mod sealed {
- /// A trait that cannot be implemented by downstream users.
- pub trait Sealed {}
- impl Sealed for u64 {}
- impl Sealed for f64 {}
-}
-
-/// Create [`std::time::Duration`]s from numeric literals.
-///
-/// # Examples
-///
-/// Basic construction of [`std::time::Duration`]s.
-///
-/// ```rust
-/// # use time::ext::NumericalStdDuration;
-/// # use core::time::Duration;
-/// assert_eq!(5.std_nanoseconds(), Duration::from_nanos(5));
-/// assert_eq!(5.std_microseconds(), Duration::from_micros(5));
-/// assert_eq!(5.std_milliseconds(), Duration::from_millis(5));
-/// assert_eq!(5.std_seconds(), Duration::from_secs(5));
-/// assert_eq!(5.std_minutes(), Duration::from_secs(5 * 60));
-/// assert_eq!(5.std_hours(), Duration::from_secs(5 * 3_600));
-/// assert_eq!(5.std_days(), Duration::from_secs(5 * 86_400));
-/// assert_eq!(5.std_weeks(), Duration::from_secs(5 * 604_800));
-/// ```
-///
-/// Just like any other [`std::time::Duration`], they can be added, subtracted, etc.
-///
-/// ```rust
-/// # use time::ext::NumericalStdDuration;
-/// assert_eq!(
-/// 2.std_seconds() + 500.std_milliseconds(),
-/// 2_500.std_milliseconds()
-/// );
-/// assert_eq!(
-/// 2.std_seconds() - 500.std_milliseconds(),
-/// 1_500.std_milliseconds()
-/// );
-/// ```
-///
-/// When called on floating point values, any remainder of the floating point value will be
-/// truncated. Keep in mind that floating point numbers are inherently imprecise and have
-/// limited capacity.
-pub trait NumericalStdDuration: sealed::Sealed {
- /// Create a [`std::time::Duration`] from the number of nanoseconds.
- fn std_nanoseconds(self) -> StdDuration;
- /// Create a [`std::time::Duration`] from the number of microseconds.
- fn std_microseconds(self) -> StdDuration;
- /// Create a [`std::time::Duration`] from the number of milliseconds.
- fn std_milliseconds(self) -> StdDuration;
- /// Create a [`std::time::Duration`] from the number of seconds.
- fn std_seconds(self) -> StdDuration;
- /// Create a [`std::time::Duration`] from the number of minutes.
- fn std_minutes(self) -> StdDuration;
- /// Create a [`std::time::Duration`] from the number of hours.
- fn std_hours(self) -> StdDuration;
- /// Create a [`std::time::Duration`] from the number of days.
- fn std_days(self) -> StdDuration;
- /// Create a [`std::time::Duration`] from the number of weeks.
- fn std_weeks(self) -> StdDuration;
-}
-
-impl NumericalStdDuration for u64 {
- fn std_nanoseconds(self) -> StdDuration {
- StdDuration::from_nanos(self)
- }
-
- fn std_microseconds(self) -> StdDuration {
- StdDuration::from_micros(self)
- }
-
- fn std_milliseconds(self) -> StdDuration {
- StdDuration::from_millis(self)
- }
-
- fn std_seconds(self) -> StdDuration {
- StdDuration::from_secs(self)
- }
-
- /// # Panics
- ///
- /// This may panic if an overflow occurs.
- fn std_minutes(self) -> StdDuration {
- StdDuration::from_secs(
- self.checked_mul(Second::per(Minute).extend())
- .expect("overflow constructing `time::Duration`"),
- )
- }
-
- /// # Panics
- ///
- /// This may panic if an overflow occurs.
- fn std_hours(self) -> StdDuration {
- StdDuration::from_secs(
- self.checked_mul(Second::per(Hour).extend())
- .expect("overflow constructing `time::Duration`"),
- )
- }
-
- /// # Panics
- ///
- /// This may panic if an overflow occurs.
- fn std_days(self) -> StdDuration {
- StdDuration::from_secs(
- self.checked_mul(Second::per(Day).extend())
- .expect("overflow constructing `time::Duration`"),
- )
- }
-
- /// # Panics
- ///
- /// This may panic if an overflow occurs.
- fn std_weeks(self) -> StdDuration {
- StdDuration::from_secs(
- self.checked_mul(Second::per(Week).extend())
- .expect("overflow constructing `time::Duration`"),
- )
- }
-}
-
-impl NumericalStdDuration for f64 {
- /// # Panics
- ///
- /// This will panic if self is negative.
- fn std_nanoseconds(self) -> StdDuration {
- assert!(self >= 0.);
- StdDuration::from_nanos(self as u64)
- }
-
- /// # Panics
- ///
- /// This will panic if self is negative.
- fn std_microseconds(self) -> StdDuration {
- assert!(self >= 0.);
- StdDuration::from_nanos((self * Nanosecond::per(Microsecond) as Self) as u64)
- }
-
- /// # Panics
- ///
- /// This will panic if self is negative.
- fn std_milliseconds(self) -> StdDuration {
- assert!(self >= 0.);
- StdDuration::from_nanos((self * Nanosecond::per(Millisecond) as Self) as u64)
- }
-
- /// # Panics
- ///
- /// This will panic if self is negative.
- fn std_seconds(self) -> StdDuration {
- assert!(self >= 0.);
- StdDuration::from_nanos((self * Nanosecond::per(Second) as Self) as u64)
- }
-
- /// # Panics
- ///
- /// This will panic if self is negative.
- fn std_minutes(self) -> StdDuration {
- assert!(self >= 0.);
- StdDuration::from_nanos((self * Nanosecond::per(Minute) as Self) as u64)
- }
-
- /// # Panics
- ///
- /// This will panic if self is negative.
- fn std_hours(self) -> StdDuration {
- assert!(self >= 0.);
- StdDuration::from_nanos((self * Nanosecond::per(Hour) as Self) as u64)
- }
-
- /// # Panics
- ///
- /// This will panic if self is negative.
- fn std_days(self) -> StdDuration {
- assert!(self >= 0.);
- StdDuration::from_nanos((self * Nanosecond::per(Day) as Self) as u64)
- }
-
- /// # Panics
- ///
- /// This will panic if self is negative.
- fn std_weeks(self) -> StdDuration {
- assert!(self >= 0.);
- StdDuration::from_nanos((self * Nanosecond::per(Week) as Self) as u64)
- }
-}