Struct extprim::u128::u128 [] [src]

pub struct u128 {
    // some fields omitted
}

An unsigned 128-bit number.

Methods

impl u128

fn new(lo: u64) -> u128

Constructs a new 128-bit integer from a 64-bit integer.

fn from_parts(hi: u64, lo: u64) -> u128

Constructs a new 128-bit integer from the high-64-bit and low-64-bit parts.

The new integer can be considered as hi * 2**64 + lo.

Examples

use extprim::u128::u128;

let number = u128::from_parts(6692605942, 14083847773837265618);
assert_eq!(format!("{}", number), "123456789012345678901234567890");

fn low64(self) -> u64

Fetch the lower-64-bit of the number.

Examples

use extprim::u128::u128;

let number = u128::from_str_radix("ffd1390a0adc2fb8dabbb8174d95c99b", 16).unwrap();
assert_eq!(number.low64(), 0xdabbb8174d95c99b);

fn high64(self) -> u64

Fetch the higher-64-bit of the number.

Examples

use extprim::u128::u128;

let number = u128::from_str_radix("ffd1390a0adc2fb8dabbb8174d95c99b", 16).unwrap();
assert_eq!(number.high64(), 0xffd1390a0adc2fb8);

fn as_i128(self) -> i128

Convert this number to signed with wrapping.

Examples

use extprim::u128::u128;
use extprim::i128::i128;

let a = u128::from_str_radix( "ffd1390a0adc2fb8dabbb8174d95c99b", 16).unwrap();
let b = i128::from_str_radix("-002ec6f5f523d047254447e8b26a3665", 16).unwrap();
assert_eq!(a.as_i128(), b);
assert_eq!(b.as_u128(), a);

impl u128

fn wrapping_add(self, other: u128) -> u128

Wrapping (modular) addition. Computes self + other, wrapping around at the boundary of the type.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(5).wrapping_add(u128::new(6)), u128::new(11));
assert_eq!(u128::max_value().wrapping_add(u128::one()), u128::zero());

fn wrapping_sub(self, other: u128) -> u128

Wrapping (modular) subtraction. Computes self - other, wrapping around at the boundary of the type.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(6).wrapping_sub(u128::new(5)), u128::one());
assert_eq!(u128::new(5).wrapping_sub(u128::new(6)), u128::max_value());

fn overflowing_add(self, other: u128) -> (u128, bool)

Calculates self + other.

Returns a tuple of the addition along with a boolean indicating whether an arithmetic overflow would occur. If an overflow would have occurred then the wrapped value is returned.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(6).overflowing_add(u128::new(13)), (u128::new(19), false));
assert_eq!(u128::max_value().overflowing_add(u128::one()), (u128::zero(), true));

fn overflowing_sub(self, other: u128) -> (u128, bool)

Calculates self - other.

Returns a tuple of the subtraction along with a boolean indicating whether an arithmetic overflow would occur. If an overflow would have occurred then the wrapped value is returned.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(6).overflowing_sub(u128::new(5)), (u128::one(), false));
assert_eq!(u128::new(5).overflowing_sub(u128::new(6)), (u128::max_value(), true));

fn saturating_add(self, other: u128) -> u128

Saturating integer addition. Computes self + other, saturating at the numeric bounds instead of overflowing.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(13).saturating_add(u128::new(7)), u128::new(20));

let huge_num = u128::from_str_radix("ccccccccbbbbbbbbaaaaaaaa99999999", 16).unwrap();
let also_big = u128::from_str_radix("5566778899aabbccddeeff0011223344", 16).unwrap();
assert_eq!(huge_num.saturating_add(also_big), u128::max_value());

fn saturating_sub(self, other: u128) -> u128

Saturating integer subtraction. Computes self - other, saturating at the numeric bounds instead of overflowing.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(91).saturating_sub(u128::new(13)), u128::new(78));
assert_eq!(u128::new(13).saturating_sub(u128::new(91)), u128::zero());

fn wrapping_neg(self) -> u128

Wrapping (modular) negation. Computes -self, wrapping around at the boundary of the type.

Since unsigned types do not have negative equivalents all applications of this function will wrap (except for -0). For values smaller than the corresponding signed type's maximum the result is the same as casting the corresponding signed value. Any larger values are equivalent to MAX + 1 - (val - MAX - 1).

Examples

use extprim::u128::u128;

assert_eq!(u128::zero().wrapping_neg(), u128::zero());
assert_eq!(u128::one().wrapping_neg(), u128::max_value());
assert_eq!(u128::max_value().wrapping_neg(), u128::one());

impl u128

fn checked_add(self, other: u128) -> Option<u128>

Checked integer addition. Computes self + other, returning None if overflow occurred.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(5).checked_add(u128::new(8)), Some(u128::new(13)));
assert_eq!(u128::max_value().checked_add(u128::max_value()), None);

impl u128

fn checked_sub(self, other: u128) -> Option<u128>

Checked integer subtraction. Computes self - other, returning None if underflow occurred.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(8).checked_sub(u128::new(5)), Some(u128::new(3)));
assert_eq!(u128::new(5).checked_sub(u128::new(8)), None);

impl u128

fn wrapping_shl(self, shift: u32) -> u128

Panic-free bitwise shift-left; yields self << (shift % 128).

Examples

use extprim::u128::u128;

assert_eq!(u128::new(7).wrapping_shl(66), u128::from_parts(28, 0));
assert_eq!(u128::new(7).wrapping_shl(128), u128::new(7));
assert_eq!(u128::new(7).wrapping_shl(129), u128::new(14));

fn wrapping_shr(self, shift: u32) -> u128

Panic-free bitwsie shift-right; yields self >> (shift % 128).

Examples

use extprim::u128::u128;

assert_eq!(u128::max_value().wrapping_shr(66), u128::new(0x3fffffffffffffff));
assert_eq!(u128::new(7).wrapping_shr(128), u128::new(7));
assert_eq!(u128::new(7).wrapping_shr(129), u128::new(3));

fn overflowing_shl(self, other: u32) -> (u128, bool)

Shifts self left by other bits.

Returns a tuple of the shifted version of self along with a boolean indicating whether the shift value was larger than or equal to the number of bits (128). If the shift value is too large, then value is masked by 0x7f, and this value is then used to perform the shift.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(7).overflowing_shl(66), (u128::from_parts(28, 0), false));
assert_eq!(u128::new(7).overflowing_shl(128), (u128::new(7), true));
assert_eq!(u128::new(7).overflowing_shl(129), (u128::new(14), true));

fn overflowing_shr(self, other: u32) -> (u128, bool)

Shifts self right by other bits.

Returns a tuple of the shifted version of self along with a boolean indicating whether the shift value was larger than or equal to the number of bits (128). If the shift value is too large, then value is masked by 0x7f, and this value is then used to perform the shift.

Examples

use extprim::u128::u128;

assert_eq!(u128::max_value().overflowing_shr(66), (u128::new(0x3fffffffffffffff), false));
assert_eq!(u128::new(7).overflowing_shr(128), (u128::new(7), true));
assert_eq!(u128::new(7).overflowing_shr(129), (u128::new(3), true));

impl u128

fn checked_shl(self, other: u32) -> Option<u128>

Checked shift left. Computes self << other, returning None if the shift is larger than or equal to the number of bits in self (128).

Examples

use extprim::u128::u128;

assert_eq!(u128::new(7).checked_shl(66), Some(u128::from_parts(28, 0)));
assert_eq!(u128::new(7).checked_shl(128), None);
assert_eq!(u128::new(7).checked_shl(129), None);

impl u128

fn checked_shr(self, other: u32) -> Option<u128>

Checked shift right. Computes self >> other, returning None if the shift is larger than or equal to the number of bits in self (128).

Examples

use extprim::u128::u128;

assert_eq!(u128::max_value().checked_shr(66), Some(u128::new(0x3fffffffffffffff)));
assert_eq!(u128::new(7).checked_shr(128), None);
assert_eq!(u128::new(7).checked_shr(129), None);

impl u128

fn wrapping_mul(self, other: u128) -> u128

Wrapping (modular) multiplication. Computes self * other, wrapping around at the boundary of the type.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(6).wrapping_mul(u128::new(9)), u128::new(54));

let a = u128::max_value() - u128::new(2);
let b = u128::max_value() - u128::new(4);
assert_eq!(a.wrapping_mul(b), u128::new(15));

fn overflowing_mul(self, other: u128) -> (u128, bool)

Calculates the multiplication of self and other.

Returns a tuple of the multiplication along with a boolean indicating whether an arithmetic overflow would occur. If an overflow would have occurred then the wrapped value is returned.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(6).overflowing_mul(u128::new(9)), (u128::new(54), false));

let a = u128::max_value() - u128::new(2);
let b = u128::max_value() - u128::new(4);
assert_eq!(a.overflowing_mul(b), (u128::new(15), true));

fn saturating_mul(self, other: u128) -> u128

Saturating integer multiplication. Computes self * other, saturating at the numeric bounds instead of overflowing.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(6).saturating_mul(u128::new(9)), u128::new(54));

let a = u128::max_value() - u128::new(2);
let b = u128::max_value() - u128::new(4);
assert_eq!(a.saturating_mul(b), u128::max_value());

fn wrapping_mul_64(self, other: u64) -> u128

Wrapping (modular) multiplication with a 64-bit number. Computes self * other, wrapping around at the boundary of the type.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(6).wrapping_mul_64(9), u128::new(54));

let a = u128::max_value() - u128::new(2);
assert_eq!(a.wrapping_mul_64(7), u128::max_value() - u128::new(20));

fn overflowing_mul_64(self, other: u64) -> (u128, bool)

Calculates the multiplication of self and other with a 64-bit number.

Returns a tuple of the multiplication along with a boolean indicating whether an arithmetic overflow would occur. If an overflow would have occurred then the wrapped value is returned.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(6).overflowing_mul_64(9), (u128::new(54), false));

let a = u128::max_value() - u128::new(2);
assert_eq!(a.overflowing_mul_64(7), (u128::max_value() - u128::new(20), true));

fn saturating_mul_64(self, other: u64) -> u128

Saturating integer multiplication with a 64-bit number. Computes self * other, saturating at the numeric bounds instead of overflowing.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(6).saturating_mul_64(9), u128::new(54));

let a = u128::max_value() - u128::new(2);
assert_eq!(a.saturating_mul_64(7), u128::max_value());

impl u128

fn checked_mul(self, other: u128) -> Option<u128>

Checked integer multiplication. Computes self * other, returning None if underflow or overflow occurred.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(6).checked_mul(u128::new(9)), Some(u128::new(54)));

let a = u128::max_value() - u128::new(2);
let b = u128::max_value() - u128::new(4);
assert_eq!(a.checked_mul(b), None);

impl u128

fn checked_mul_64(self, other: u64) -> Option<u128>

Checked integer multiplication with a 64-bit number. Computes self * other, returning None if underflow or overflow occurred.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(6).checked_mul_64(9), Some(u128::new(54)));

let a = u128::max_value() - u128::new(2);
assert_eq!(a.checked_mul_64(7), None);

impl u128

fn wrapping_div(self, other: u128) -> u128

Wrapping (modular) division. Computes self / other. Wrapped division on unsigned types is just normal division. There's no way wrapping could ever happen. This function exists, so that all operations are accounted for in the wrapping operations.

Panics

This function will panic if other is 0.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(100).wrapping_div(u128::new(8)), u128::new(12));

fn wrapping_rem(self, other: u128) -> u128

Wrapping (modular) remainder. Computes self % other. Wrapped remainder calculation on unsigned types is just the regular remainder calculation. There's no way wrapping could ever happen. This function exists, so that all operations are accounted for in the wrapping operations.

Panics

This function will panic if other is 0.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(100).wrapping_rem(u128::new(8)), u128::new(4));

fn overflowing_div(self, other: u128) -> (u128, bool)

Calculates the divisor when self is divided by other.

Returns a tuple of the divisor along with a boolean indicating whether an arithmetic overflow would occur. Note that for unsigned integers overflow never occurs, so the second value is always false.

Panics

This function will panic if other is 0.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(100).overflowing_div(u128::new(8)), (u128::new(12), false));

fn overflowing_rem(self, other: u128) -> (u128, bool)

Calculates the remainder when self is divided by other.

Returns a tuple of the remainder along with a boolean indicating whether an arithmetic overflow would occur. Note that for unsigned integers overflow never occurs, so the second value is always false.

Panics

This function will panic if other is 0.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(100).overflowing_rem(u128::new(8)), (u128::new(4), false));

fn checked_div(self, other: u128) -> Option<u128>

Checked integer division. Computes self / other, returning None if other == 0.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(100).checked_div(u128::new(8)), Some(u128::new(12)));
assert_eq!(u128::new(100).checked_div(u128::zero()), None);

fn checked_rem(self, other: u128) -> Option<u128>

Checked integer remainder. Computes self % other, returning None if other == 0.

Examples

use extprim::u128::u128;

assert_eq!(u128::new(100).checked_rem(u128::new(8)), Some(u128::new(4)));
assert_eq!(u128::new(100).checked_rem(u128::zero()), None);

impl u128

fn min_value() -> u128

Returns the smallest unsigned 128-bit integer (0).

fn max_value() -> u128

Returns the largest unsigned 128-bit integer (340_282_366_920_938_463_463_374_607_431_768_211_455).

fn zero() -> u128

Returns the constant 0.

fn one() -> u128

Returns the constant 1.

impl u128

fn count_ones(self) -> u32

Returns the number of ones in the binary representation of self.

Examples

use extprim::u128::u128;

let n = u128::from_str_radix("6f32f1ef8b18a2bc3cea59789c79d441", 16).unwrap();
assert_eq!(n.count_ones(), 67);

fn count_zeros(self) -> u32

Returns the number of zeros in the binary representation of self (including leading zeros).

Examples

use extprim::u128::u128;

let n = u128::from_str_radix("6f32f1ef8b18a2bc3cea59789c79d441", 16).unwrap();
assert_eq!(n.count_zeros(), 61);

fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of self.

Examples

use extprim::u128::u128;

assert_eq!(u128::zero().leading_zeros(), 128);
assert_eq!(u128::one().leading_zeros(), 127);
assert_eq!(u128::max_value().leading_zeros(), 0);
assert_eq!((u128::one() << 24u32).leading_zeros(), 103);
assert_eq!((u128::one() << 124u32).leading_zeros(), 3);

fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation of self.

Examples

use extprim::u128::u128;

assert_eq!(u128::zero().trailing_zeros(), 128);
assert_eq!(u128::one().trailing_zeros(), 0);
assert_eq!((u128::one() << 24u32).trailing_zeros(), 24);
assert_eq!((u128::one() << 124u32).trailing_zeros(), 124);

fn rotate_left(self, shift: u32) -> Self

Shifts the bits to the left by a specified amount, shift, wrapping the truncated bits to the end of the resulting integer.

Examples

use extprim::u128::u128;

let a = u128::from_str_radix("d0cf4b50cfe20765fff4b4e3f741cf6d", 16).unwrap();
let b = u128::from_str_radix("19e96a19fc40ecbffe969c7ee839edba", 16).unwrap();
assert_eq!(a.rotate_left(5), b);

fn rotate_right(self, shift: u32) -> Self

Shifts the bits to the right by a specified amount, shift, wrapping the truncated bits to the beginning of the resulting integer.

Examples

use extprim::u128::u128;

let a = u128::from_str_radix("d0cf4b50cfe20765fff4b4e3f741cf6d", 16).unwrap();
let b = u128::from_str_radix("6e867a5a867f103b2fffa5a71fba0e7b", 16).unwrap();
assert_eq!(a.rotate_right(5), b);

fn swap_bytes(self) -> Self

Reverses the byte order of the integer.

Examples

use extprim::u128::u128;

let a = u128::from_str_radix("0123456789abcdef1112223334445556", 16).unwrap();
let b = u128::from_str_radix("5655443433221211efcdab8967452301", 16).unwrap();
assert_eq!(a.swap_bytes(), b);

fn from_be(x: Self) -> Self

Converts an integer from big endian to the target's endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

fn from_le(x: Self) -> Self

Converts an integer from little endian to the target's endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

fn to_be(self) -> Self

Converts self to big endian from the target's endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

fn to_le(self) -> Self

Converts self to little endian from the target's endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

fn pow(self, exp: u32) -> Self

Raises self to the power of exp, using exponentiation by squaring.

Examples

use extprim::u128::u128;
use std::str::FromStr;

assert_eq!(u128::new(5).pow(30), u128::from_str("931322574615478515625").unwrap());

fn is_power_of_two(self) -> bool

Returns true if and only if self == 2**k for some k.

Examples

use extprim::u128::u128;

assert!(!u128::new(0).is_power_of_two());
assert!( u128::new(1).is_power_of_two());
assert!( u128::new(2).is_power_of_two());
assert!(!u128::new(3).is_power_of_two());

fn next_power_of_two(self) -> Self

Returns the smallest power of two greater than or equal to self. Unspecified behavior on overflow.

Examples

use extprim::u128::u128;

assert_eq!(u128::zero().next_power_of_two(), u128::new(1));
assert_eq!(u128::one().next_power_of_two(), u128::new(1));
assert_eq!(u128::new(384).next_power_of_two(), u128::new(512));
assert_eq!(u128::new(0x80000000_00000001).next_power_of_two(), u128::from_parts(1, 0));
assert_eq!(u128::from_parts(0x80000000_00000000, 0).next_power_of_two(), u128::from_parts(0x80000000_00000000, 0));

fn checked_next_power_of_two(self) -> Option<Self>

Returns the smallest power of two greater than or equal to self. If the next power of two is greater than the type's maximum value, None is returned, otherwise the power of two is wrapped in Some.

Examples

use extprim::u128::u128;

assert_eq!(u128::zero().checked_next_power_of_two(), Some(u128::new(1)));
assert_eq!(u128::one().checked_next_power_of_two(), Some(u128::new(1)));
assert_eq!(u128::new(384).checked_next_power_of_two(), Some(u128::new(512)));
assert_eq!(u128::new(0x80000000_00000001).checked_next_power_of_two(), Some(u128::from_parts(1, 0)));
assert_eq!(u128::from_parts(0x80000000_00000000, 0).checked_next_power_of_two(), Some(u128::from_parts(0x80000000_00000000, 0)));
assert_eq!(u128::from_parts(0x80000000_00000000, 1).checked_next_power_of_two(), None);
assert_eq!(u128::max_value().checked_next_power_of_two(), None);

impl u128

fn from_str_radix(src: &str, radix: u32) -> Result<u128, ParseIntError>

Converts a string slice in a given base to an integer.

Leading and trailing whitespace represent an error.

Arguments

  • src: A string slice
  • radix: The base to use. Must lie in the range [2 ... 36].

Return value

Err(ParseIntError) if the string did not represent a valid number. Otherwise, Ok(n) where n is the integer represented by src.

Trait Implementations

impl NumCast for u128

fn from<T: ToPrimitive>(n: T) -> Option<u128>

impl Rand for u128

fn rand<R: Rng>(rng: &mut R) -> u128

impl Add<u128> for u128

type Output = Self

fn add(self, other: u128) -> Self

impl Sub<u128> for u128

type Output = Self

fn sub(self, other: u128) -> Self

impl AddAssign<u128> for u128

fn add_assign(&mut self, other: u128)

impl SubAssign<u128> for u128

fn sub_assign(&mut self, other: u128)

impl CheckedAdd for u128

fn checked_add(&self, other: &Self) -> Option<Self>

impl CheckedSub for u128

fn checked_sub(&self, other: &Self) -> Option<Self>

impl Saturating for u128

fn saturating_add(self, other: Self) -> Self

fn saturating_sub(self, other: Self) -> Self

impl PartialOrd for u128

fn partial_cmp(&self, other: &u128) -> Option<Ordering>

1.0.0fn lt(&self, other: &Rhs) -> bool

1.0.0fn le(&self, other: &Rhs) -> bool

1.0.0fn gt(&self, other: &Rhs) -> bool

1.0.0fn ge(&self, other: &Rhs) -> bool

impl Ord for u128

fn cmp(&self, other: &u128) -> Ordering

impl Not for u128

type Output = Self

fn not(self) -> Self

impl BitAnd for u128

type Output = Self

fn bitand(self, other: Self) -> Self

impl BitOr for u128

type Output = Self

fn bitor(self, other: Self) -> Self

impl BitXor for u128

type Output = Self

fn bitxor(self, other: Self) -> Self

impl BitAndAssign<u128> for u128

fn bitand_assign(&mut self, other: u128)

impl BitOrAssign<u128> for u128

fn bitor_assign(&mut self, other: u128)

impl BitXorAssign<u128> for u128

fn bitxor_assign(&mut self, other: u128)

impl Shl<u8> for u128

type Output = Self

fn shl(self, other: u8) -> Self

impl Shl<u16> for u128

type Output = Self

fn shl(self, other: u16) -> Self

impl Shl<u32> for u128

type Output = Self

fn shl(self, other: u32) -> Self

impl Shl<u64> for u128

type Output = Self

fn shl(self, other: u64) -> Self

impl Shl<usize> for u128

type Output = Self

fn shl(self, other: usize) -> Self

impl Shl<i8> for u128

type Output = Self

fn shl(self, other: i8) -> Self

impl Shl<i16> for u128

type Output = Self

fn shl(self, other: i16) -> Self

impl Shl<i32> for u128

type Output = Self

fn shl(self, other: i32) -> Self

impl Shl<i64> for u128

type Output = Self

fn shl(self, other: i64) -> Self

impl Shl<isize> for u128

type Output = Self

fn shl(self, other: isize) -> Self

impl Shr<u8> for u128

type Output = Self

fn shr(self, other: u8) -> Self

impl Shr<u16> for u128

type Output = Self

fn shr(self, other: u16) -> Self

impl Shr<u32> for u128

type Output = Self

fn shr(self, other: u32) -> Self

impl Shr<u64> for u128

type Output = Self

fn shr(self, other: u64) -> Self

impl Shr<usize> for u128

type Output = Self

fn shr(self, other: usize) -> Self

impl Shr<i8> for u128

type Output = Self

fn shr(self, other: i8) -> Self

impl Shr<i16> for u128

type Output = Self

fn shr(self, other: i16) -> Self

impl Shr<i32> for u128

type Output = Self

fn shr(self, other: i32) -> Self

impl Shr<i64> for u128

type Output = Self

fn shr(self, other: i64) -> Self

impl Shr<isize> for u128

type Output = Self

fn shr(self, other: isize) -> Self

impl ShlAssign<u8> for u128

fn shl_assign(&mut self, other: u8)

impl ShlAssign<u16> for u128

fn shl_assign(&mut self, other: u16)

impl ShlAssign<u32> for u128

fn shl_assign(&mut self, other: u32)

impl ShlAssign<u64> for u128

fn shl_assign(&mut self, other: u64)

impl ShlAssign<usize> for u128

fn shl_assign(&mut self, other: usize)

impl ShlAssign<i8> for u128

fn shl_assign(&mut self, other: i8)

impl ShlAssign<i16> for u128

fn shl_assign(&mut self, other: i16)

impl ShlAssign<i32> for u128

fn shl_assign(&mut self, other: i32)

impl ShlAssign<i64> for u128

fn shl_assign(&mut self, other: i64)

impl ShlAssign<isize> for u128

fn shl_assign(&mut self, other: isize)

impl ShrAssign<u8> for u128

fn shr_assign(&mut self, other: u8)

impl ShrAssign<u16> for u128

fn shr_assign(&mut self, other: u16)

impl ShrAssign<u32> for u128

fn shr_assign(&mut self, other: u32)

impl ShrAssign<u64> for u128

fn shr_assign(&mut self, other: u64)

impl ShrAssign<usize> for u128

fn shr_assign(&mut self, other: usize)

impl ShrAssign<i8> for u128

fn shr_assign(&mut self, other: i8)

impl ShrAssign<i16> for u128

fn shr_assign(&mut self, other: i16)

impl ShrAssign<i32> for u128

fn shr_assign(&mut self, other: i32)

impl ShrAssign<i64> for u128

fn shr_assign(&mut self, other: i64)

impl ShrAssign<isize> for u128

fn shr_assign(&mut self, other: isize)

impl Mul<u128> for u128

type Output = Self

fn mul(self, other: u128) -> Self

impl Mul<u64> for u128

type Output = Self

fn mul(self, other: u64) -> Self

impl MulAssign<u128> for u128

fn mul_assign(&mut self, other: u128)

impl MulAssign<u64> for u128

fn mul_assign(&mut self, other: u64)

impl CheckedMul for u128

fn checked_mul(&self, other: &Self) -> Option<Self>

impl Div for u128

type Output = Self

fn div(self, other: Self) -> Self

impl Rem for u128

type Output = Self

fn rem(self, other: Self) -> Self

impl DivAssign<u128> for u128

fn div_assign(&mut self, other: u128)

impl RemAssign<u128> for u128

fn rem_assign(&mut self, other: u128)

impl CheckedDiv for u128

fn checked_div(&self, other: &Self) -> Option<Self>

impl ToPrimitive for u128

fn to_i64(&self) -> Option<i64>

fn to_u64(&self) -> Option<u64>

fn to_f64(&self) -> Option<f64>

fn to_isize(&self) -> Option<isize>

fn to_i8(&self) -> Option<i8>

fn to_i16(&self) -> Option<i16>

fn to_i32(&self) -> Option<i32>

fn to_usize(&self) -> Option<usize>

fn to_u8(&self) -> Option<u8>

fn to_u16(&self) -> Option<u16>

fn to_u32(&self) -> Option<u32>

fn to_f32(&self) -> Option<f32>

impl FromPrimitive for u128

fn from_u64(n: u64) -> Option<u128>

fn from_i64(n: i64) -> Option<u128>

fn from_f64(n: f64) -> Option<u128>

fn from_isize(n: isize) -> Option<Self>

fn from_i8(n: i8) -> Option<Self>

fn from_i16(n: i16) -> Option<Self>

fn from_i32(n: i32) -> Option<Self>

fn from_usize(n: usize) -> Option<Self>

fn from_u8(n: u8) -> Option<Self>

fn from_u16(n: u16) -> Option<Self>

fn from_u32(n: u32) -> Option<Self>

fn from_f32(n: f32) -> Option<Self>

impl ToExtraPrimitive for u128

fn to_u128(&self) -> Option<u128>

fn to_i128(&self) -> Option<i128>

impl From<u8> for u128

fn from(arg: u8) -> Self

impl From<u16> for u128

fn from(arg: u16) -> Self

impl From<u32> for u128

fn from(arg: u32) -> Self

impl From<u64> for u128

fn from(arg: u64) -> Self

impl Bounded for u128

fn min_value() -> Self

fn max_value() -> Self

impl Zero for u128

fn zero() -> Self

fn is_zero(&self) -> bool

impl One for u128

fn one() -> Self

impl PrimInt for u128

fn count_ones(self) -> u32

fn count_zeros(self) -> u32

fn leading_zeros(self) -> u32

fn trailing_zeros(self) -> u32

fn rotate_left(self, shift: u32) -> Self

fn rotate_right(self, shift: u32) -> Self

fn swap_bytes(self) -> Self

fn from_be(x: Self) -> Self

fn from_le(x: Self) -> Self

fn to_be(self) -> Self

fn to_le(self) -> Self

fn pow(self, exp: u32) -> Self

fn signed_shl(self, shift: u32) -> Self

fn signed_shr(self, shift: u32) -> Self

fn unsigned_shl(self, shift: u32) -> Self

fn unsigned_shr(self, shift: u32) -> Self

impl Unsigned for u128

impl Num for u128

type FromStrRadixErr = ParseIntError

fn from_str_radix(src: &str, radix: u32) -> Result<Self, ParseIntError>

impl FromStr for u128

type Err = ParseIntError

fn from_str(src: &str) -> Result<Self, ParseIntError>

impl Display for u128

fn fmt(&self, formatter: &mut Formatter) -> Result<(), Error>

impl Debug for u128

fn fmt(&self, formatter: &mut Formatter) -> Result<(), Error>

impl Binary for u128

fn fmt(&self, formatter: &mut Formatter) -> Result<(), Error>

impl LowerHex for u128

fn fmt(&self, formatter: &mut Formatter) -> Result<(), Error>

impl UpperHex for u128

fn fmt(&self, formatter: &mut Formatter) -> Result<(), Error>

impl Octal for u128

fn fmt(&self, formatter: &mut Formatter) -> Result<(), Error>

Derived Implementations

impl Eq for u128

impl PartialEq for u128

fn eq(&self, __arg_0: &u128) -> bool

fn ne(&self, __arg_0: &u128) -> bool

impl Hash for u128

fn hash<__H: Hasher>(&self, __arg_0: &mut __H)

1.3.0fn hash_slice<H>(data: &[Self], state: &mut H) where H: Hasher

impl Clone for u128

fn clone(&self) -> u128

1.0.0fn clone_from(&mut self, source: &Self)

impl Copy for u128

impl Default for u128

fn default() -> u128