rust/patches/0002-Disable-u128-and-i128-in-libcore.patch

1132 lines
40 KiB
Diff

From 7a466d258ff8c795fa52274e0627a39becb3bdf3 Mon Sep 17 00:00:00 2001
From: bjorn3 <bjorn3@users.noreply.github.com>
Date: Tue, 13 Nov 2018 18:11:23 +0100
Subject: [PATCH] Disable u128 and i128 in libcore
---
src/libcore/clone.rs | 4 +-
src/libcore/cmp.rs | 6 +--
src/libcore/default.rs | 2 -
src/libcore/fmt/num.rs | 6 +--
src/libcore/hash/mod.rs | 20 -------
src/libcore/iter/range.rs | 1 -
src/libcore/iter/traits.rs | 2 +-
src/libcore/lib.rs | 2 -
src/libcore/marker.rs | 4 +-
src/libcore/mem.rs | 2 -
src/libcore/num/mod.rs | 99 +++++++++-------------------------
src/libcore/num/wrapping.rs | 14 ++---
src/libcore/ops/arith.rs | 22 ++++----
src/libcore/ops/bit.rs | 30 ++++-------
src/libcore/sync/atomic.rs | 28 ----------
src/libcore/tests/iter.rs | 15 ------
src/libcore/tests/num/mod.rs | 18 -------
src/libcore/time.rs | 126 -------------------------------------------
18 files changed, 62 insertions(+), 339 deletions(-)
diff --git a/src/libcore/clone.rs b/src/libcore/clone.rs
index 46bb580..fcf9fa8 100644
--- a/src/libcore/clone.rs
+++ b/src/libcore/clone.rs
@@ -172,8 +172,8 @@ mod impls {
}
impl_clone! {
- usize u8 u16 u32 u64 u128
- isize i8 i16 i32 i64 i128
+ usize u8 u16 u32 u64
+ isize i8 i16 i32 i64
f32 f64
bool char
}
diff --git a/src/libcore/cmp.rs b/src/libcore/cmp.rs
index 33881de..0e1e823 100644
--- a/src/libcore/cmp.rs
+++ b/src/libcore/cmp.rs
@@ -883,7 +883,7 @@ mod impls {
}
partial_eq_impl! {
- bool char usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 f32 f64
+ bool char usize u8 u16 u32 u64 isize i8 i16 i32 i64 f32 f64
}
macro_rules! eq_impl {
@@ -893,7 +893,7 @@ mod impls {
)*)
}
- eq_impl! { () bool char usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
+ eq_impl! { () bool char usize u8 u16 u32 u64 isize i8 i16 i32 i64 }
macro_rules! partial_ord_impl {
($($t:ty)*) => ($(
@@ -982,7 +982,7 @@ mod impls {
}
}
- ord_impl! { char usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
+ ord_impl! { char usize u8 u16 u32 u64 isize i8 i16 i32 i64 }
#[unstable(feature = "never_type", issue = "35121")]
impl PartialEq for ! {
diff --git a/src/libcore/default.rs b/src/libcore/default.rs
index 638aceb..8b6ff80 100644
--- a/src/libcore/default.rs
+++ b/src/libcore/default.rs
@@ -145,14 +145,12 @@ default_impl! { u8, 0, "Returns the default value of `0`" }
default_impl! { u16, 0, "Returns the default value of `0`" }
default_impl! { u32, 0, "Returns the default value of `0`" }
default_impl! { u64, 0, "Returns the default value of `0`" }
-default_impl! { u128, 0, "Returns the default value of `0`" }
default_impl! { isize, 0, "Returns the default value of `0`" }
default_impl! { i8, 0, "Returns the default value of `0`" }
default_impl! { i16, 0, "Returns the default value of `0`" }
default_impl! { i32, 0, "Returns the default value of `0`" }
default_impl! { i64, 0, "Returns the default value of `0`" }
-default_impl! { i128, 0, "Returns the default value of `0`" }
default_impl! { f32, 0.0f32, "Returns the default value of `0.0`" }
default_impl! { f64, 0.0f64, "Returns the default value of `0.0`" }
diff --git a/src/libcore/fmt/num.rs b/src/libcore/fmt/num.rs
index 51391fa..140255e 100644
--- a/src/libcore/fmt/num.rs
+++ b/src/libcore/fmt/num.rs
@@ -29,7 +29,6 @@ trait Int: PartialEq + PartialOrd + Div<Output=Self> + Rem<Output=Self> +
fn to_u16(&self) -> u16;
fn to_u32(&self) -> u32;
fn to_u64(&self) -> u64;
- fn to_u128(&self) -> u128;
}
macro_rules! doit {
@@ -40,10 +39,9 @@ macro_rules! doit {
fn to_u16(&self) -> u16 { *self as u16 }
fn to_u32(&self) -> u32 { *self as u32 }
fn to_u64(&self) -> u64 { *self as u64 }
- fn to_u128(&self) -> u128 { *self as u128 }
})*)
}
-doit! { i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize }
+doit! { i8 i16 i32 i64 isize u8 u16 u32 u64 usize }
/// A type that represents a specific radix
#[doc(hidden)]
@@ -184,7 +182,6 @@ integer! { i8, u8 }
integer! { i16, u16 }
integer! { i32, u32 }
integer! { i64, u64 }
-integer! { i128, u128 }
const DEC_DIGITS_LUT: &'static[u8] =
b"0001020304050607080910111213141516171819\
@@ -260,7 +257,6 @@ macro_rules! impl_Display {
impl_Display!(i8, u8, i16, u16, i32, u32: to_u32);
impl_Display!(i64, u64: to_u64);
-impl_Display!(i128, u128: to_u128);
#[cfg(target_pointer_width = "16")]
impl_Display!(isize, usize: to_u16);
#[cfg(target_pointer_width = "32")]
diff --git a/src/libcore/hash/mod.rs b/src/libcore/hash/mod.rs
index bbebadd..d6de656 100644
--- a/src/libcore/hash/mod.rs
+++ b/src/libcore/hash/mod.rs
@@ -306,12 +306,6 @@ pub trait Hasher {
fn write_u64(&mut self, i: u64) {
self.write(&unsafe { mem::transmute::<_, [u8; 8]>(i) })
}
- /// Writes a single `u128` into this hasher.
- #[inline]
- #[stable(feature = "i128", since = "1.26.0")]
- fn write_u128(&mut self, i: u128) {
- self.write(&unsafe { mem::transmute::<_, [u8; 16]>(i) })
- }
/// Writes a single `usize` into this hasher.
#[inline]
#[stable(feature = "hasher_write", since = "1.3.0")]
@@ -346,12 +340,6 @@ pub trait Hasher {
fn write_i64(&mut self, i: i64) {
self.write_u64(i as u64)
}
- /// Writes a single `i128` into this hasher.
- #[inline]
- #[stable(feature = "i128", since = "1.26.0")]
- fn write_i128(&mut self, i: i128) {
- self.write_u128(i as u128)
- }
/// Writes a single `isize` into this hasher.
#[inline]
#[stable(feature = "hasher_write", since = "1.3.0")]
@@ -380,9 +368,6 @@ impl<H: Hasher + ?Sized> Hasher for &mut H {
fn write_u64(&mut self, i: u64) {
(**self).write_u64(i)
}
- fn write_u128(&mut self, i: u128) {
- (**self).write_u128(i)
- }
fn write_usize(&mut self, i: usize) {
(**self).write_usize(i)
}
@@ -398,9 +383,6 @@ impl<H: Hasher + ?Sized> Hasher for &mut H {
fn write_i64(&mut self, i: i64) {
(**self).write_i64(i)
}
- fn write_i128(&mut self, i: i128) {
- (**self).write_i128(i)
- }
fn write_isize(&mut self, i: isize) {
(**self).write_isize(i)
}
@@ -587,8 +569,6 @@ mod impls {
(i32, write_i32),
(i64, write_i64),
(isize, write_isize),
- (u128, write_u128),
- (i128, write_i128),
}
#[stable(feature = "rust1", since = "1.0.0")]
diff --git a/src/libcore/iter/range.rs b/src/libcore/iter/range.rs
index 55addd8..6695cfe 100644
--- a/src/libcore/iter/range.rs
+++ b/src/libcore/iter/range.rs
@@ -183,7 +183,6 @@ step_impl_signed!([i64: u64]);
// assume here that it is less than 64-bits.
#[cfg(not(target_pointer_width = "64"))]
step_impl_no_between!(u64 i64);
-step_impl_no_between!(u128 i128);
macro_rules! range_exact_iter_impl {
($($t:ty)*) => ($(
diff --git a/src/libcore/iter/traits.rs b/src/libcore/iter/traits.rs
index f95f8e7..549d832 100644
--- a/src/libcore/iter/traits.rs
+++ b/src/libcore/iter/traits.rs
@@ -843,7 +843,7 @@ macro_rules! float_sum_product {
)*)
}
-integer_sum_product! { i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize }
+integer_sum_product! { i8 i16 i32 i64 isize u8 u16 u32 u64 usize }
float_sum_product! { f32 f64 }
/// An iterator adapter that produces output as long as the underlying
diff --git a/src/libcore/lib.rs b/src/libcore/lib.rs
index 1fec2e5..04266ee 100644
--- a/src/libcore/lib.rs
+++ b/src/libcore/lib.rs
@@ -152,14 +152,12 @@ mod uint_macros;
#[path = "num/i16.rs"] pub mod i16;
#[path = "num/i32.rs"] pub mod i32;
#[path = "num/i64.rs"] pub mod i64;
-#[path = "num/i128.rs"] pub mod i128;
#[path = "num/usize.rs"] pub mod usize;
#[path = "num/u8.rs"] pub mod u8;
#[path = "num/u16.rs"] pub mod u16;
#[path = "num/u32.rs"] pub mod u32;
#[path = "num/u64.rs"] pub mod u64;
-#[path = "num/u128.rs"] pub mod u128;
#[path = "num/f32.rs"] pub mod f32;
#[path = "num/f64.rs"] pub mod f64;
diff --git a/src/libcore/marker.rs b/src/libcore/marker.rs
index 662a8dd..856878e 100644
--- a/src/libcore/marker.rs
+++ b/src/libcore/marker.rs
@@ -673,8 +673,8 @@ mod copy_impls {
}
impl_copy! {
- usize u8 u16 u32 u64 u128
- isize i8 i16 i32 i64 i128
+ usize u8 u16 u32 u64
+ isize i8 i16 i32 i64
f32 f64
bool char
}
diff --git a/src/libcore/mem.rs b/src/libcore/mem.rs
index d4b7094..3b5a197 100644
--- a/src/libcore/mem.rs
+++ b/src/libcore/mem.rs
@@ -162,12 +162,10 @@ pub fn forget<T>(t: T) {
/// u16 | 2
/// u32 | 4
/// u64 | 8
-/// u128 | 16
/// i8 | 1
/// i16 | 2
/// i32 | 4
/// i64 | 8
-/// i128 | 16
/// f32 | 4
/// f64 | 8
/// char | 4
diff --git a/src/libcore/num/mod.rs b/src/libcore/num/mod.rs
index 30b7b45..88a294a 100644
--- a/src/libcore/num/mod.rs
+++ b/src/libcore/num/mod.rs
@@ -112,7 +112,6 @@ nonzero_integers! {
NonZeroU16(u16);
NonZeroU32(u32);
NonZeroU64(u64);
- NonZeroU128(u128);
NonZeroUsize(usize);
}
@@ -2087,18 +2086,6 @@ impl i64 {
"[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]" }
}
-#[lang = "i128"]
-impl i128 {
- int_impl! { i128, i128, u128, 128, -170141183460469231731687303715884105728,
- 170141183460469231731687303715884105727, "", "", 16,
- "0x13f40000000000000000000000004f76", "0x4f7613f4", "0x12345678901234567890123456789012",
- "0x12907856341290785634129078563412", "0x48091e6a2c48091e6a2c48091e6a2c48",
- "[0x12, 0x90, 0x78, 0x56, 0x34, 0x12, 0x90, 0x78, \
- 0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
- "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, \
- 0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12]" }
-}
-
#[cfg(target_pointer_width = "16")]
#[lang = "isize"]
impl isize {
@@ -4349,17 +4336,6 @@ impl u64 {
"[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]" }
}
-#[lang = "u128"]
-impl u128 {
- uint_impl! { u128, u128, 128, 340282366920938463463374607431768211455, "", "", 16,
- "0x13f40000000000000000000000004f76", "0x4f7613f4", "0x12345678901234567890123456789012",
- "0x12907856341290785634129078563412", "0x48091e6a2c48091e6a2c48091e6a2c48",
- "[0x12, 0x90, 0x78, 0x56, 0x34, 0x12, 0x90, 0x78, \
- 0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]",
- "[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56, \
- 0x78, 0x90, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12]" }
-}
-
#[cfg(target_pointer_width = "16")]
#[lang = "usize"]
impl usize {
@@ -4443,7 +4419,7 @@ macro_rules! from_str_radix_int_impl {
}
)*}
}
-from_str_radix_int_impl! { isize i8 i16 i32 i64 i128 usize u8 u16 u32 u64 u128 }
+from_str_radix_int_impl! { isize i8 i16 i32 i64 usize u8 u16 u32 u64 }
/// The error type returned when a checked integral type conversion fails.
#[unstable(feature = "try_from", issue = "33417")]
@@ -4559,30 +4535,25 @@ macro_rules! rev {
try_from_upper_bounded!(u16, u8);
try_from_upper_bounded!(u32, u16, u8);
try_from_upper_bounded!(u64, u32, u16, u8);
-try_from_upper_bounded!(u128, u64, u32, u16, u8);
try_from_both_bounded!(i16, i8);
try_from_both_bounded!(i32, i16, i8);
try_from_both_bounded!(i64, i32, i16, i8);
-try_from_both_bounded!(i128, i64, i32, i16, i8);
// unsigned-to-signed
try_from_upper_bounded!(u8, i8);
try_from_upper_bounded!(u16, i8, i16);
try_from_upper_bounded!(u32, i8, i16, i32);
try_from_upper_bounded!(u64, i8, i16, i32, i64);
-try_from_upper_bounded!(u128, i8, i16, i32, i64, i128);
// signed-to-unsigned
-try_from_lower_bounded!(i8, u8, u16, u32, u64, u128);
-try_from_lower_bounded!(i16, u16, u32, u64, u128);
-try_from_lower_bounded!(i32, u32, u64, u128);
-try_from_lower_bounded!(i64, u64, u128);
-try_from_lower_bounded!(i128, u128);
+try_from_lower_bounded!(i8, u8, u16, u32, u64);
+try_from_lower_bounded!(i16, u16, u32, u64);
+try_from_lower_bounded!(i32, u32, u64);
+try_from_lower_bounded!(i64, u64);
try_from_both_bounded!(i16, u8);
try_from_both_bounded!(i32, u16, u8);
try_from_both_bounded!(i64, u32, u16, u8);
-try_from_both_bounded!(i128, u64, u32, u16, u8);
// usize/isize
try_from_upper_bounded!(usize, isize);
@@ -4594,21 +4565,21 @@ mod ptr_try_from_impls {
use convert::TryFrom;
try_from_upper_bounded!(usize, u8);
- try_from_unbounded!(usize, u16, u32, u64, u128);
+ try_from_unbounded!(usize, u16, u32, u64);
try_from_upper_bounded!(usize, i8, i16);
- try_from_unbounded!(usize, i32, i64, i128);
+ try_from_unbounded!(usize, i32, i64);
try_from_both_bounded!(isize, u8);
- try_from_lower_bounded!(isize, u16, u32, u64, u128);
+ try_from_lower_bounded!(isize, u16, u32, u64);
try_from_both_bounded!(isize, i8);
- try_from_unbounded!(isize, i16, i32, i64, i128);
+ try_from_unbounded!(isize, i16, i32, i64);
- rev!(try_from_upper_bounded, usize, u32, u64, u128);
+ rev!(try_from_upper_bounded, usize, u32, u64);
rev!(try_from_lower_bounded, usize, i8, i16);
- rev!(try_from_both_bounded, usize, i32, i64, i128);
+ rev!(try_from_both_bounded, usize, i32, i64);
- rev!(try_from_upper_bounded, isize, u16, u32, u64, u128);
- rev!(try_from_both_bounded, isize, i32, i64, i128);
+ rev!(try_from_upper_bounded, isize, u16, u32, u64);
+ rev!(try_from_both_bounded, isize, i32, i64);
}
#[cfg(target_pointer_width = "32")]
@@ -4617,24 +4588,24 @@ mod ptr_try_from_impls {
use convert::TryFrom;
try_from_upper_bounded!(usize, u8, u16);
- try_from_unbounded!(usize, u32, u64, u128);
+ try_from_unbounded!(usize, u32, u64);
try_from_upper_bounded!(usize, i8, i16, i32);
- try_from_unbounded!(usize, i64, i128);
+ try_from_unbounded!(usize, i64);
try_from_both_bounded!(isize, u8, u16);
- try_from_lower_bounded!(isize, u32, u64, u128);
+ try_from_lower_bounded!(isize, u32, u64);
try_from_both_bounded!(isize, i8, i16);
- try_from_unbounded!(isize, i32, i64, i128);
+ try_from_unbounded!(isize, i32, i64);
rev!(try_from_unbounded, usize, u32);
- rev!(try_from_upper_bounded, usize, u64, u128);
+ rev!(try_from_upper_bounded, usize, u64);
rev!(try_from_lower_bounded, usize, i8, i16, i32);
- rev!(try_from_both_bounded, usize, i64, i128);
+ rev!(try_from_both_bounded, usize, i64);
rev!(try_from_unbounded, isize, u16);
- rev!(try_from_upper_bounded, isize, u32, u64, u128);
+ rev!(try_from_upper_bounded, isize, u32, u64);
rev!(try_from_unbounded, isize, i32);
- rev!(try_from_both_bounded, isize, i64, i128);
+ rev!(try_from_both_bounded, isize, i64);
}
#[cfg(target_pointer_width = "64")]
@@ -4643,24 +4614,20 @@ mod ptr_try_from_impls {
use convert::TryFrom;
try_from_upper_bounded!(usize, u8, u16, u32);
- try_from_unbounded!(usize, u64, u128);
+ try_from_unbounded!(usize, u64);
try_from_upper_bounded!(usize, i8, i16, i32, i64);
- try_from_unbounded!(usize, i128);
try_from_both_bounded!(isize, u8, u16, u32);
- try_from_lower_bounded!(isize, u64, u128);
+ try_from_lower_bounded!(isize, u64);
try_from_both_bounded!(isize, i8, i16, i32);
- try_from_unbounded!(isize, i64, i128);
+ try_from_unbounded!(isize, i64);
rev!(try_from_unbounded, usize, u32, u64);
- rev!(try_from_upper_bounded, usize, u128);
rev!(try_from_lower_bounded, usize, i8, i16, i32, i64);
- rev!(try_from_both_bounded, usize, i128);
rev!(try_from_unbounded, isize, u16, u32);
- rev!(try_from_upper_bounded, isize, u64, u128);
+ rev!(try_from_upper_bounded, isize, u64);
rev!(try_from_unbounded, isize, i32, i64);
- rev!(try_from_both_bounded, isize, i128);
}
#[doc(hidden)]
@@ -4695,7 +4662,7 @@ macro_rules! doit {
}
})*)
}
-doit! { i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize }
+doit! { i8 i16 i32 i64 isize u8 u16 u32 u64 usize }
fn from_str_radix<T: FromStrRadixHelper>(src: &str, radix: u32) -> Result<T, ParseIntError> {
use self::IntErrorKind::*;
@@ -4863,52 +4830,38 @@ impl_from_bool! { u8, #[stable(feature = "from_bool", since = "1.28.0")] }
impl_from_bool! { u16, #[stable(feature = "from_bool", since = "1.28.0")] }
impl_from_bool! { u32, #[stable(feature = "from_bool", since = "1.28.0")] }
impl_from_bool! { u64, #[stable(feature = "from_bool", since = "1.28.0")] }
-impl_from_bool! { u128, #[stable(feature = "from_bool", since = "1.28.0")] }
impl_from_bool! { usize, #[stable(feature = "from_bool", since = "1.28.0")] }
impl_from_bool! { i8, #[stable(feature = "from_bool", since = "1.28.0")] }
impl_from_bool! { i16, #[stable(feature = "from_bool", since = "1.28.0")] }
impl_from_bool! { i32, #[stable(feature = "from_bool", since = "1.28.0")] }
impl_from_bool! { i64, #[stable(feature = "from_bool", since = "1.28.0")] }
-impl_from_bool! { i128, #[stable(feature = "from_bool", since = "1.28.0")] }
impl_from_bool! { isize, #[stable(feature = "from_bool", since = "1.28.0")] }
// Unsigned -> Unsigned
impl_from! { u8, u16, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
impl_from! { u8, u32, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
impl_from! { u8, u64, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
-impl_from! { u8, u128, #[stable(feature = "i128", since = "1.26.0")] }
impl_from! { u8, usize, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
impl_from! { u16, u32, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
impl_from! { u16, u64, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
-impl_from! { u16, u128, #[stable(feature = "i128", since = "1.26.0")] }
impl_from! { u32, u64, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
-impl_from! { u32, u128, #[stable(feature = "i128", since = "1.26.0")] }
-impl_from! { u64, u128, #[stable(feature = "i128", since = "1.26.0")] }
// Signed -> Signed
impl_from! { i8, i16, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
impl_from! { i8, i32, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
impl_from! { i8, i64, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
-impl_from! { i8, i128, #[stable(feature = "i128", since = "1.26.0")] }
impl_from! { i8, isize, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
impl_from! { i16, i32, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
impl_from! { i16, i64, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
-impl_from! { i16, i128, #[stable(feature = "i128", since = "1.26.0")] }
impl_from! { i32, i64, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
-impl_from! { i32, i128, #[stable(feature = "i128", since = "1.26.0")] }
-impl_from! { i64, i128, #[stable(feature = "i128", since = "1.26.0")] }
// Unsigned -> Signed
impl_from! { u8, i16, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
impl_from! { u8, i32, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
impl_from! { u8, i64, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
-impl_from! { u8, i128, #[stable(feature = "i128", since = "1.26.0")] }
impl_from! { u16, i32, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
impl_from! { u16, i64, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
-impl_from! { u16, i128, #[stable(feature = "i128", since = "1.26.0")] }
impl_from! { u32, i64, #[stable(feature = "lossless_int_conv", since = "1.5.0")] }
-impl_from! { u32, i128, #[stable(feature = "i128", since = "1.26.0")] }
-impl_from! { u64, i128, #[stable(feature = "i128", since = "1.26.0")] }
// The C99 standard defines bounds on INTPTR_MIN, INTPTR_MAX, and UINTPTR_MAX
// which imply that pointer-sized integers must be at least 16 bits:
diff --git a/src/libcore/num/wrapping.rs b/src/libcore/num/wrapping.rs
index 00134a5..ea15481 100644
--- a/src/libcore/num/wrapping.rs
+++ b/src/libcore/num/wrapping.rs
@@ -112,19 +112,17 @@ macro_rules! sh_impl_all {
//sh_impl_unsigned! { $t, u16 }
//sh_impl_unsigned! { $t, u32 }
//sh_impl_unsigned! { $t, u64 }
- //sh_impl_unsigned! { $t, u128 }
sh_impl_unsigned! { $t, usize }
//sh_impl_signed! { $t, i8 }
//sh_impl_signed! { $t, i16 }
//sh_impl_signed! { $t, i32 }
//sh_impl_signed! { $t, i64 }
- //sh_impl_signed! { $t, i128 }
//sh_impl_signed! { $t, isize }
)*)
}
-sh_impl_all! { u8 u16 u32 u64 u128 usize i8 i16 i32 i64 i128 isize }
+sh_impl_all! { u8 u16 u32 u64 usize i8 i16 i32 i64 isize }
// FIXME(30524): impl Op<T> for Wrapping<T>, impl OpAssign<T> for Wrapping<T>
macro_rules! wrapping_impl {
@@ -323,7 +321,7 @@ macro_rules! wrapping_impl {
)*)
}
-wrapping_impl! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
+wrapping_impl! { usize u8 u16 u32 u64 isize i8 i16 i32 i64 }
macro_rules! wrapping_int_impl {
($($t:ty)*) => ($(
@@ -685,7 +683,7 @@ assert_eq!(Wrapping(3i8).pow(6), Wrapping(-39));
)*)
}
-wrapping_int_impl! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
+wrapping_int_impl! { usize u8 u16 u32 u64 isize i8 i16 i32 i64 }
macro_rules! wrapping_int_impl_signed {
($($t:ty)*) => ($(
@@ -814,7 +812,7 @@ assert!(!Wrapping(10", stringify!($t), ").is_negative());
)*)
}
-wrapping_int_impl_signed! { isize i8 i16 i32 i64 i128 }
+wrapping_int_impl_signed! { isize i8 i16 i32 i64 }
macro_rules! wrapping_int_impl_unsigned {
($($t:ty)*) => ($(
@@ -891,7 +889,7 @@ assert_eq!(Wrapping(200_u8).next_power_of_two(), Wrapping(0));
)*)
}
-wrapping_int_impl_unsigned! { usize u8 u16 u32 u64 u128 }
+wrapping_int_impl_unsigned! { usize u8 u16 u32 u64 }
mod shift_max {
#![allow(non_upper_case_globals)]
@@ -918,13 +916,11 @@ mod shift_max {
pub const i16: u32 = (1 << 4) - 1;
pub const i32: u32 = (1 << 5) - 1;
pub const i64: u32 = (1 << 6) - 1;
- pub const i128: u32 = (1 << 7) - 1;
pub use self::platform::isize;
pub const u8: u32 = i8;
pub const u16: u32 = i16;
pub const u32: u32 = i32;
pub const u64: u32 = i64;
- pub const u128: u32 = i128;
pub use self::platform::usize;
}
diff --git a/src/libcore/ops/arith.rs b/src/libcore/ops/arith.rs
index a1bc546..38742be 100644
--- a/src/libcore/ops/arith.rs
+++ b/src/libcore/ops/arith.rs
@@ -114,7 +114,7 @@ macro_rules! add_impl {
)*)
}
-add_impl! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 f32 f64 }
+add_impl! { usize u8 u16 u32 u64 isize i8 i16 i32 i64 f32 f64 }
/// The subtraction operator `-`.
///
@@ -212,7 +212,7 @@ macro_rules! sub_impl {
)*)
}
-sub_impl! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 f32 f64 }
+sub_impl! { usize u8 u16 u32 u64 isize i8 i16 i32 i64 f32 f64 }
/// The multiplication operator `*`.
///
@@ -332,7 +332,7 @@ macro_rules! mul_impl {
)*)
}
-mul_impl! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 f32 f64 }
+mul_impl! { usize u8 u16 u32 u64 isize i8 i16 i32 i64 f32 f64 }
/// The division operator `/`.
///
@@ -457,7 +457,7 @@ macro_rules! div_impl_integer {
)*)
}
-div_impl_integer! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
+div_impl_integer! { usize u8 u16 u32 u64 isize i8 i16 i32 i64 }
macro_rules! div_impl_float {
($($t:ty)*) => ($(
@@ -542,7 +542,7 @@ macro_rules! rem_impl_integer {
)*)
}
-rem_impl_integer! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
+rem_impl_integer! { usize u8 u16 u32 u64 isize i8 i16 i32 i64 }
macro_rules! rem_impl_float {
@@ -641,7 +641,7 @@ macro_rules! neg_impl_unsigned {
}
// neg_impl_unsigned! { usize u8 u16 u32 u64 }
-neg_impl_numeric! { isize i8 i16 i32 i64 i128 f32 f64 }
+neg_impl_numeric! { isize i8 i16 i32 i64 f32 f64 }
/// The addition assignment operator `+=`.
///
@@ -697,7 +697,7 @@ macro_rules! add_assign_impl {
)+)
}
-add_assign_impl! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 f32 f64 }
+add_assign_impl! { usize u8 u16 u32 u64 isize i8 i16 i32 i64 f32 f64 }
/// The subtraction assignment operator `-=`.
///
@@ -753,7 +753,7 @@ macro_rules! sub_assign_impl {
)+)
}
-sub_assign_impl! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 f32 f64 }
+sub_assign_impl! { usize u8 u16 u32 u64 isize i8 i16 i32 i64 f32 f64 }
/// The multiplication assignment operator `*=`.
///
@@ -800,7 +800,7 @@ macro_rules! mul_assign_impl {
)+)
}
-mul_assign_impl! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 f32 f64 }
+mul_assign_impl! { usize u8 u16 u32 u64 isize i8 i16 i32 i64 f32 f64 }
/// The division assignment operator `/=`.
///
@@ -846,7 +846,7 @@ macro_rules! div_assign_impl {
)+)
}
-div_assign_impl! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 f32 f64 }
+div_assign_impl! { usize u8 u16 u32 u64 isize i8 i16 i32 i64 f32 f64 }
/// The remainder assignment operator `%=`.
///
@@ -896,4 +896,4 @@ macro_rules! rem_assign_impl {
)+)
}
-rem_assign_impl! { usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 f32 f64 }
+rem_assign_impl! { usize u8 u16 u32 u64 isize i8 i16 i32 i64 f32 f64 }
diff --git a/src/libcore/ops/bit.rs b/src/libcore/ops/bit.rs
index 3900f36..66b7980 100644
--- a/src/libcore/ops/bit.rs
+++ b/src/libcore/ops/bit.rs
@@ -65,7 +65,7 @@ macro_rules! not_impl {
)*)
}
-not_impl! { bool usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
+not_impl! { bool usize u8 u16 u32 u64 isize i8 i16 i32 i64 }
/// The bitwise AND operator `&`.
///
@@ -149,7 +149,7 @@ macro_rules! bitand_impl {
)*)
}
-bitand_impl! { bool usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
+bitand_impl! { bool usize u8 u16 u32 u64 isize i8 i16 i32 i64 }
/// The bitwise OR operator `|`.
///
@@ -233,7 +233,7 @@ macro_rules! bitor_impl {
)*)
}
-bitor_impl! { bool usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
+bitor_impl! { bool usize u8 u16 u32 u64 isize i8 i16 i32 i64 }
/// The bitwise XOR operator `^`.
///
@@ -320,7 +320,7 @@ macro_rules! bitxor_impl {
)*)
}
-bitxor_impl! { bool usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
+bitxor_impl! { bool usize u8 u16 u32 u64 isize i8 i16 i32 i64 }
/// The left shift operator `<<`. Note that because this trait is implemented
/// for all integer types with multiple right-hand-side types, Rust's type
@@ -417,19 +417,17 @@ macro_rules! shl_impl_all {
shl_impl! { $t, u16 }
shl_impl! { $t, u32 }
shl_impl! { $t, u64 }
- shl_impl! { $t, u128 }
shl_impl! { $t, usize }
shl_impl! { $t, i8 }
shl_impl! { $t, i16 }
shl_impl! { $t, i32 }
shl_impl! { $t, i64 }
- shl_impl! { $t, i128 }
shl_impl! { $t, isize }
)*)
}
-shl_impl_all! { u8 u16 u32 u64 u128 usize i8 i16 i32 i64 isize i128 }
+shl_impl_all! { u8 u16 u32 u64 usize i8 i16 i32 i64 isize }
/// The right shift operator `>>`. Note that because this trait is implemented
/// for all integer types with multiple right-hand-side types, Rust's type
@@ -526,19 +524,17 @@ macro_rules! shr_impl_all {
shr_impl! { $t, u16 }
shr_impl! { $t, u32 }
shr_impl! { $t, u64 }
- shr_impl! { $t, u128 }
shr_impl! { $t, usize }
shr_impl! { $t, i8 }
shr_impl! { $t, i16 }
shr_impl! { $t, i32 }
shr_impl! { $t, i64 }
- shr_impl! { $t, i128 }
shr_impl! { $t, isize }
)*)
}
-shr_impl_all! { u8 u16 u32 u64 u128 usize i8 i16 i32 i64 i128 isize }
+shr_impl_all! { u8 u16 u32 u64 usize i8 i16 i32 i64 isize }
/// The bitwise AND assignment operator `&=`.
///
@@ -626,7 +622,7 @@ macro_rules! bitand_assign_impl {
)+)
}
-bitand_assign_impl! { bool usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
+bitand_assign_impl! { bool usize u8 u16 u32 u64 isize i8 i16 i32 i64 }
/// The bitwise OR assignment operator `|=`.
///
@@ -675,7 +671,7 @@ macro_rules! bitor_assign_impl {
)+)
}
-bitor_assign_impl! { bool usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
+bitor_assign_impl! { bool usize u8 u16 u32 u64 isize i8 i16 i32 i64 }
/// The bitwise XOR assignment operator `^=`.
///
@@ -724,7 +720,7 @@ macro_rules! bitxor_assign_impl {
)+)
}
-bitxor_assign_impl! { bool usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 }
+bitxor_assign_impl! { bool usize u8 u16 u32 u64 isize i8 i16 i32 i64 }
/// The left shift assignment operator `<<=`.
///
@@ -780,19 +776,17 @@ macro_rules! shl_assign_impl_all {
shl_assign_impl! { $t, u16 }
shl_assign_impl! { $t, u32 }
shl_assign_impl! { $t, u64 }
- shl_assign_impl! { $t, u128 }
shl_assign_impl! { $t, usize }
shl_assign_impl! { $t, i8 }
shl_assign_impl! { $t, i16 }
shl_assign_impl! { $t, i32 }
shl_assign_impl! { $t, i64 }
- shl_assign_impl! { $t, i128 }
shl_assign_impl! { $t, isize }
)*)
}
-shl_assign_impl_all! { u8 u16 u32 u64 u128 usize i8 i16 i32 i64 i128 isize }
+shl_assign_impl_all! { u8 u16 u32 u64 usize i8 i16 i32 i64 isize }
/// The right shift assignment operator `>>=`.
///
@@ -848,16 +842,14 @@ macro_rules! shr_assign_impl_all {
shr_assign_impl! { $t, u16 }
shr_assign_impl! { $t, u32 }
shr_assign_impl! { $t, u64 }
- shr_assign_impl! { $t, u128 }
shr_assign_impl! { $t, usize }
shr_assign_impl! { $t, i8 }
shr_assign_impl! { $t, i16 }
shr_assign_impl! { $t, i32 }
shr_assign_impl! { $t, i64 }
- shr_assign_impl! { $t, i128 }
shr_assign_impl! { $t, isize }
)*)
}
-shr_assign_impl_all! { u8 u16 u32 u64 u128 usize i8 i16 i32 i64 i128 isize }
+shr_assign_impl_all! { u8 u16 u32 u64 usize i8 i16 i32 i64 isize }
diff --git a/src/libcore/sync/atomic.rs b/src/libcore/sync/atomic.rs
index 56d3b42..34df75f 100644
--- a/src/libcore/sync/atomic.rs
+++ b/src/libcore/sync/atomic.rs
@@ -1938,34 +1938,6 @@ atomic_int! {
8,
u64 AtomicU64 ATOMIC_U64_INIT
}
-#[cfg(all(not(stage0), target_has_atomic = "128"))]
-atomic_int! {
- unstable(feature = "integer_atomics", issue = "32976"),
- unstable(feature = "integer_atomics", issue = "32976"),
- unstable(feature = "integer_atomics", issue = "32976"),
- unstable(feature = "integer_atomics", issue = "32976"),
- unstable(feature = "integer_atomics", issue = "32976"),
- unstable(feature = "integer_atomics", issue = "32976"),
- "i128", "../../../std/primitive.i128.html",
- "#![feature(integer_atomics)]\n\n",
- atomic_min, atomic_max,
- 16,
- i128 AtomicI128 ATOMIC_I128_INIT
-}
-#[cfg(all(not(stage0), target_has_atomic = "128"))]
-atomic_int! {
- unstable(feature = "integer_atomics", issue = "32976"),
- unstable(feature = "integer_atomics", issue = "32976"),
- unstable(feature = "integer_atomics", issue = "32976"),
- unstable(feature = "integer_atomics", issue = "32976"),
- unstable(feature = "integer_atomics", issue = "32976"),
- unstable(feature = "integer_atomics", issue = "32976"),
- "u128", "../../../std/primitive.u128.html",
- "#![feature(integer_atomics)]\n\n",
- atomic_umin, atomic_umax,
- 16,
- u128 AtomicU128 ATOMIC_U128_INIT
-}
#[cfg(target_pointer_width = "16")]
macro_rules! ptr_width {
() => { 2 }
diff --git a/src/libcore/tests/iter.rs b/src/libcore/tests/iter.rs
index 2476c07..2075670 100644
--- a/src/libcore/tests/iter.rs
+++ b/src/libcore/tests/iter.rs
@@ -224,8 +224,6 @@ fn test_iterator_step_by_nth_overflow() {
type Bigger = u32;
#[cfg(target_pointer_width = "32")]
type Bigger = u64;
- #[cfg(target_pointer_width = "64")]
- type Bigger = u128;
#[derive(Clone)]
struct Test(Bigger);
@@ -1878,19 +1876,6 @@ fn test_step_replace_signed() {
}
#[test]
-fn test_step_replace_no_between() {
- let mut x = 4u128;
- let y = x.replace_zero();
- assert_eq!(x, 0);
- assert_eq!(y, 4);
-
- x = 5;
- let y = x.replace_one();
- assert_eq!(x, 1);
- assert_eq!(y, 5);
-}
-
-#[test]
fn test_rev_try_folds() {
let f = &|acc, x| i32::checked_add(2*acc, x);
assert_eq!((1..10).rev().try_fold(7, f), (1..10).try_rfold(7, f));
diff --git a/src/libcore/tests/num/mod.rs b/src/libcore/tests/num/mod.rs
index ab96d31..bb5c1d0 100644
--- a/src/libcore/tests/num/mod.rs
+++ b/src/libcore/tests/num/mod.rs
@@ -196,12 +196,10 @@ test_impl_from! { test_boolu8, bool, u8 }
test_impl_from! { test_boolu16, bool, u16 }
test_impl_from! { test_boolu32, bool, u32 }
test_impl_from! { test_boolu64, bool, u64 }
-test_impl_from! { test_boolu128, bool, u128 }
test_impl_from! { test_booli8, bool, i8 }
test_impl_from! { test_booli16, bool, i16 }
test_impl_from! { test_booli32, bool, i32 }
test_impl_from! { test_booli64, bool, i64 }
-test_impl_from! { test_booli128, bool, i128 }
// Signed -> Float
test_impl_from! { test_i8f32, i8, f32 }
@@ -283,51 +281,35 @@ test_impl_try_from_always_ok! { test_try_u8u8, u8, u8 }
test_impl_try_from_always_ok! { test_try_u8u16, u8, u16 }
test_impl_try_from_always_ok! { test_try_u8u32, u8, u32 }
test_impl_try_from_always_ok! { test_try_u8u64, u8, u64 }
-test_impl_try_from_always_ok! { test_try_u8u128, u8, u128 }
test_impl_try_from_always_ok! { test_try_u8i16, u8, i16 }
test_impl_try_from_always_ok! { test_try_u8i32, u8, i32 }
test_impl_try_from_always_ok! { test_try_u8i64, u8, i64 }
-test_impl_try_from_always_ok! { test_try_u8i128, u8, i128 }
test_impl_try_from_always_ok! { test_try_u16u16, u16, u16 }
test_impl_try_from_always_ok! { test_try_u16u32, u16, u32 }
test_impl_try_from_always_ok! { test_try_u16u64, u16, u64 }
-test_impl_try_from_always_ok! { test_try_u16u128, u16, u128 }
test_impl_try_from_always_ok! { test_try_u16i32, u16, i32 }
test_impl_try_from_always_ok! { test_try_u16i64, u16, i64 }
-test_impl_try_from_always_ok! { test_try_u16i128, u16, i128 }
test_impl_try_from_always_ok! { test_try_u32u32, u32, u32 }
test_impl_try_from_always_ok! { test_try_u32u64, u32, u64 }
-test_impl_try_from_always_ok! { test_try_u32u128, u32, u128 }
test_impl_try_from_always_ok! { test_try_u32i64, u32, i64 }
-test_impl_try_from_always_ok! { test_try_u32i128, u32, i128 }
test_impl_try_from_always_ok! { test_try_u64u64, u64, u64 }
-test_impl_try_from_always_ok! { test_try_u64u128, u64, u128 }
-test_impl_try_from_always_ok! { test_try_u64i128, u64, i128 }
-
-test_impl_try_from_always_ok! { test_try_u128u128, u128, u128 }
test_impl_try_from_always_ok! { test_try_i8i8, i8, i8 }
test_impl_try_from_always_ok! { test_try_i8i16, i8, i16 }
test_impl_try_from_always_ok! { test_try_i8i32, i8, i32 }
test_impl_try_from_always_ok! { test_try_i8i64, i8, i64 }
-test_impl_try_from_always_ok! { test_try_i8i128, i8, i128 }
test_impl_try_from_always_ok! { test_try_i16i16, i16, i16 }
test_impl_try_from_always_ok! { test_try_i16i32, i16, i32 }
test_impl_try_from_always_ok! { test_try_i16i64, i16, i64 }
-test_impl_try_from_always_ok! { test_try_i16i128, i16, i128 }
test_impl_try_from_always_ok! { test_try_i32i32, i32, i32 }
test_impl_try_from_always_ok! { test_try_i32i64, i32, i64 }
-test_impl_try_from_always_ok! { test_try_i32i128, i32, i128 }
test_impl_try_from_always_ok! { test_try_i64i64, i64, i64 }
-test_impl_try_from_always_ok! { test_try_i64i128, i64, i128 }
-
-test_impl_try_from_always_ok! { test_try_i128i128, i128, i128 }
test_impl_try_from_always_ok! { test_try_usizeusize, usize, usize }
test_impl_try_from_always_ok! { test_try_isizeisize, isize, isize }
diff --git a/src/libcore/time.rs b/src/libcore/time.rs
index 938e975..2ba930d 100644
--- a/src/libcore/time.rs
+++ b/src/libcore/time.rs
@@ -30,7 +30,6 @@ const NANOS_PER_MILLI: u32 = 1_000_000;
const NANOS_PER_MICRO: u32 = 1_000;
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;
/// A `Duration` type to represent a span of time, typically used for system
/// timeouts.
@@ -269,57 +268,6 @@ impl Duration {
#[inline]
pub const fn subsec_nanos(&self) -> u32 { self.nanos }
- /// Returns the total number of whole 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 const fn as_millis(&self) -> u128 {
- self.secs as u128 * MILLIS_PER_SEC as u128 + (self.nanos / NANOS_PER_MILLI) as u128
- }
-
- /// Returns the total number of whole 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 const fn as_micros(&self) -> u128 {
- self.secs as u128 * MICROS_PER_SEC as u128 + (self.nanos / NANOS_PER_MICRO) as u128
- }
-
- /// Returns the total number of nanoseconds contained by this `Duration`.
- ///
- /// # Examples
- ///
- /// ```
- /// # #![feature(duration_as_u128)]
- /// use std::time::Duration;
- ///
- /// let duration = Duration::new(5, 730023852);
- /// assert_eq!(duration.as_nanos(), 5730023852);
- /// ```
- #[unstable(feature = "duration_as_u128", issue = "50202")]
- #[inline]
- pub const fn as_nanos(&self) -> u128 {
- self.secs as u128 * NANOS_PER_SEC as u128 + self.nanos as u128
- }
-
/// Checked `Duration` addition. Computes `self + other`, returning [`None`]
/// if overflow occurred.
///
@@ -478,80 +426,6 @@ impl Duration {
(self.secs as f64) + (self.nanos as f64) / (NANOS_PER_SEC as f64)
}
- /// Creates a new `Duration` from the specified number of seconds.
- ///
- /// # Panics
- /// This constructor will panic if `secs` is not finite, negative or overflows `Duration`.
- ///
- /// # Examples
- /// ```
- /// #![feature(duration_float)]
- /// use std::time::Duration;
- ///
- /// let dur = Duration::from_float_secs(2.7);
- /// assert_eq!(dur, Duration::new(2, 700_000_000));
- /// ```
- #[unstable(feature = "duration_float", issue = "54361")]
- #[inline]
- pub fn from_float_secs(secs: f64) -> Duration {
- let nanos = secs * (NANOS_PER_SEC as f64);
- if !nanos.is_finite() {
- panic!("got non-finite value when converting float to duration");
- }
- if nanos >= MAX_NANOS_F64 {
- panic!("overflow when converting float to duration");
- }
- if nanos < 0.0 {
- panic!("underflow when converting float to duration");
- }
- let nanos = nanos as u128;
- Duration {
- secs: (nanos / (NANOS_PER_SEC as u128)) as u64,
- nanos: (nanos % (NANOS_PER_SEC as u128)) as u32,
- }
- }
-
- /// Multiply `Duration` by `f64`.
- ///
- /// # Panics
- /// This method will panic if result is not finite, negative or overflows `Duration`.
- ///
- /// # Examples
- /// ```
- /// #![feature(duration_float)]
- /// use std::time::Duration;
- ///
- /// let dur = Duration::new(2, 700_000_000);
- /// assert_eq!(dur.mul_f64(3.14), Duration::new(8, 478_000_000));
- /// assert_eq!(dur.mul_f64(3.14e5), Duration::new(847_800, 0));
- /// ```
- #[unstable(feature = "duration_float", issue = "54361")]
- #[inline]
- pub fn mul_f64(self, rhs: f64) -> Duration {
- Duration::from_float_secs(rhs * self.as_float_secs())
- }
-
- /// Divide `Duration` by `f64`.
- ///
- /// # Panics
- /// This method will panic if result is not finite, negative or overflows `Duration`.
- ///
- /// # Examples
- /// ```
- /// #![feature(duration_float)]
- /// use std::time::Duration;
- ///
- /// let dur = Duration::new(2, 700_000_000);
- /// assert_eq!(dur.div_f64(3.14), Duration::new(0, 859_872_611));
- /// // note that truncation is used, not rounding
- /// assert_eq!(dur.div_f64(3.14e5), Duration::new(0, 8_598));
- /// ```
- #[unstable(feature = "duration_float", issue = "54361")]
- #[inline]
- pub fn div_f64(self, rhs: f64) -> Duration {
- Duration::from_float_secs(self.as_float_secs() / rhs)
- }
-
/// Divide `Duration` by `Duration` and return `f64`.
///
/// # Examples
--
2.11.0