Added impls of `Wrapping…` for `i128` and `u128`
This commit is contained in:
parent
234706fb97
commit
5ee2570618
|
@ -32,12 +32,16 @@ wrapping_impl!(WrappingAdd, wrapping_add, u16);
|
||||||
wrapping_impl!(WrappingAdd, wrapping_add, u32);
|
wrapping_impl!(WrappingAdd, wrapping_add, u32);
|
||||||
wrapping_impl!(WrappingAdd, wrapping_add, u64);
|
wrapping_impl!(WrappingAdd, wrapping_add, u64);
|
||||||
wrapping_impl!(WrappingAdd, wrapping_add, usize);
|
wrapping_impl!(WrappingAdd, wrapping_add, usize);
|
||||||
|
#[cfg(feature = "i128")]
|
||||||
|
wrapping_impl!(WrappingAdd, wrapping_add, u128);
|
||||||
|
|
||||||
wrapping_impl!(WrappingAdd, wrapping_add, i8);
|
wrapping_impl!(WrappingAdd, wrapping_add, i8);
|
||||||
wrapping_impl!(WrappingAdd, wrapping_add, i16);
|
wrapping_impl!(WrappingAdd, wrapping_add, i16);
|
||||||
wrapping_impl!(WrappingAdd, wrapping_add, i32);
|
wrapping_impl!(WrappingAdd, wrapping_add, i32);
|
||||||
wrapping_impl!(WrappingAdd, wrapping_add, i64);
|
wrapping_impl!(WrappingAdd, wrapping_add, i64);
|
||||||
wrapping_impl!(WrappingAdd, wrapping_add, isize);
|
wrapping_impl!(WrappingAdd, wrapping_add, isize);
|
||||||
|
#[cfg(feature = "i128")]
|
||||||
|
wrapping_impl!(WrappingAdd, wrapping_add, i128);
|
||||||
|
|
||||||
/// Performs subtraction that wraps around on overflow.
|
/// Performs subtraction that wraps around on overflow.
|
||||||
pub trait WrappingSub: Sized + Sub<Self, Output=Self> {
|
pub trait WrappingSub: Sized + Sub<Self, Output=Self> {
|
||||||
|
@ -51,12 +55,16 @@ wrapping_impl!(WrappingSub, wrapping_sub, u16);
|
||||||
wrapping_impl!(WrappingSub, wrapping_sub, u32);
|
wrapping_impl!(WrappingSub, wrapping_sub, u32);
|
||||||
wrapping_impl!(WrappingSub, wrapping_sub, u64);
|
wrapping_impl!(WrappingSub, wrapping_sub, u64);
|
||||||
wrapping_impl!(WrappingSub, wrapping_sub, usize);
|
wrapping_impl!(WrappingSub, wrapping_sub, usize);
|
||||||
|
#[cfg(feature = "i128")]
|
||||||
|
wrapping_impl!(WrappingSub, wrapping_sub, u128);
|
||||||
|
|
||||||
wrapping_impl!(WrappingSub, wrapping_sub, i8);
|
wrapping_impl!(WrappingSub, wrapping_sub, i8);
|
||||||
wrapping_impl!(WrappingSub, wrapping_sub, i16);
|
wrapping_impl!(WrappingSub, wrapping_sub, i16);
|
||||||
wrapping_impl!(WrappingSub, wrapping_sub, i32);
|
wrapping_impl!(WrappingSub, wrapping_sub, i32);
|
||||||
wrapping_impl!(WrappingSub, wrapping_sub, i64);
|
wrapping_impl!(WrappingSub, wrapping_sub, i64);
|
||||||
wrapping_impl!(WrappingSub, wrapping_sub, isize);
|
wrapping_impl!(WrappingSub, wrapping_sub, isize);
|
||||||
|
#[cfg(feature = "i128")]
|
||||||
|
wrapping_impl!(WrappingSub, wrapping_sub, i128);
|
||||||
|
|
||||||
/// Performs multiplication that wraps around on overflow.
|
/// Performs multiplication that wraps around on overflow.
|
||||||
pub trait WrappingMul: Sized + Mul<Self, Output=Self> {
|
pub trait WrappingMul: Sized + Mul<Self, Output=Self> {
|
||||||
|
@ -70,12 +78,16 @@ wrapping_impl!(WrappingMul, wrapping_mul, u16);
|
||||||
wrapping_impl!(WrappingMul, wrapping_mul, u32);
|
wrapping_impl!(WrappingMul, wrapping_mul, u32);
|
||||||
wrapping_impl!(WrappingMul, wrapping_mul, u64);
|
wrapping_impl!(WrappingMul, wrapping_mul, u64);
|
||||||
wrapping_impl!(WrappingMul, wrapping_mul, usize);
|
wrapping_impl!(WrappingMul, wrapping_mul, usize);
|
||||||
|
#[cfg(feature = "i128")]
|
||||||
|
wrapping_impl!(WrappingMul, wrapping_mul, u128);
|
||||||
|
|
||||||
wrapping_impl!(WrappingMul, wrapping_mul, i8);
|
wrapping_impl!(WrappingMul, wrapping_mul, i8);
|
||||||
wrapping_impl!(WrappingMul, wrapping_mul, i16);
|
wrapping_impl!(WrappingMul, wrapping_mul, i16);
|
||||||
wrapping_impl!(WrappingMul, wrapping_mul, i32);
|
wrapping_impl!(WrappingMul, wrapping_mul, i32);
|
||||||
wrapping_impl!(WrappingMul, wrapping_mul, i64);
|
wrapping_impl!(WrappingMul, wrapping_mul, i64);
|
||||||
wrapping_impl!(WrappingMul, wrapping_mul, isize);
|
wrapping_impl!(WrappingMul, wrapping_mul, isize);
|
||||||
|
#[cfg(feature = "i128")]
|
||||||
|
wrapping_impl!(WrappingMul, wrapping_mul, i128);
|
||||||
|
|
||||||
// Well this is a bit funny, but all the more appropriate.
|
// Well this is a bit funny, but all the more appropriate.
|
||||||
impl<T: WrappingAdd> WrappingAdd for Wrapping<T> where Wrapping<T>: Add<Output = Wrapping<T>> {
|
impl<T: WrappingAdd> WrappingAdd for Wrapping<T> where Wrapping<T>: Add<Output = Wrapping<T>> {
|
||||||
|
|
Loading…
Reference in New Issue