[][src]Struct extprim::i128::i128

#[repr(C)]
pub struct i128(_);

An signed 128-bit number.

Methods

impl i128[src]

pub const fn new(lo: i64) -> i128[src]

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

pub const fn from_built_in(value: i128) -> i128[src]

Constructs a new 128-bit integer from the built-in 128-bit integer.

pub const fn from_parts(hi: i64, lo: u64) -> i128[src]

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.

use extprim::i128::i128;
let number = i128::from_parts(-6692605943, 4362896299872285998);
assert_eq!(format!("{}", number), "-123456789012345678901234567890");
// Note: -123456789012345678901234567890 = -6692605943 << 64 | 4362896299872285998

pub fn low64(self) -> u64[src]

Fetch the lower-64-bit of the number.

Examples

use extprim::i128::i128;

let number = i128::from_str_radix("-2ec6f5f523d047254447e8b26a3665", 16).unwrap();
assert_eq!(number.low64(), 0xdabbb8174d95c99bu64);

pub fn high64(self) -> i64[src]

Fetch the higher-64-bit of the number.

Examples

use extprim::i128::i128;

let number = i128::from_str_radix("-2ec6f5f523d047254447e8b26a3665", 16).unwrap();
assert_eq!(number.high64(), -0x2ec6f5f523d048i64);

pub fn as_u128(self) -> u128[src]

Convert this number to unsigned 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);

pub fn as_built_in(self) -> i128[src]

Converts this number to the built-in 128-bit integer type.

impl i128[src]

pub fn wrapping_add(self, other: i128) -> i128[src]

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

Examples

use extprim::i128::i128;

assert_eq!(i128::new(5).wrapping_add(i128::new(-6)), i128::new(-1));
assert_eq!(i128::max_value().wrapping_add(i128::one()), i128::min_value());

pub fn wrapping_sub(self, other: i128) -> i128[src]

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

Examples

use extprim::i128::i128;

assert_eq!(i128::new(6).wrapping_sub(i128::new(13)), i128::new(-7));
assert_eq!(i128::min_value().wrapping_sub(i128::one()), i128::max_value());

pub fn wrapping_neg(self) -> i128[src]

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

The only case where such wrapping can occur is when one negates MIN on a signed type (where MIN is the negative minimal value for the type); this is a positive value that is too large to represent in the type. In such a case, this function returns MIN itself.

Examples

use extprim::i128::i128;

assert_eq!(i128::new(7).wrapping_neg(), i128::new(-7));
assert_eq!(i128::min_value().wrapping_neg(), i128::min_value());

pub fn overflowing_add(self, other: i128) -> (i128, bool)[src]

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::i128::i128;

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

pub fn overflowing_sub(self, other: i128) -> (i128, bool)[src]

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::i128::i128;

assert_eq!(i128::new(3).overflowing_sub(i128::new(8)), (i128::new(-5), false));
assert_eq!(i128::min_value().overflowing_sub(i128::max_value()), (i128::one(), true));

pub fn overflowing_neg(self) -> (i128, bool)[src]

Negates self, overflowing if this is equal to the minimum value.

Returns a tuple of the negated version of self along with a boolean indicating whether an overflow happened. If self is the minimum value (i128::MIN), then the minimum value will be returned again and true will be returned for an overflow happening.

Examples

use extprim::i128::i128;

assert_eq!(i128::new(7).overflowing_neg(), (i128::new(-7), false));
assert_eq!(i128::min_value().overflowing_neg(), (i128::min_value(), true));

pub fn checked_neg(self) -> Option<i128>[src]

Checked negation. Computes -self, returning None if self == MIN.

Examples

use extprim::i128::i128;

assert_eq!(i128::new(7).checked_neg(), Some(i128::new(-7)));
assert_eq!(i128::min_value().checked_neg(), None);

pub fn saturating_add(self, other: i128) -> i128[src]

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

Examples

use extprim::i128::i128;

assert_eq!(i128::new(6).saturating_add(i128::new(13)), i128::new(19));
assert_eq!(i128::max_value().saturating_add(i128::new(2)), i128::max_value());
assert_eq!(i128::min_value().saturating_add(i128::new(-2)), i128::min_value());

pub fn saturating_sub(self, other: i128) -> i128[src]

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

Examples

use extprim::i128::i128;

assert_eq!(i128::new(3).saturating_sub(i128::new(8)), i128::new(-5));
assert_eq!(i128::max_value().saturating_sub(i128::new(-2)), i128::max_value());
assert_eq!(i128::min_value().saturating_sub(i128::new(2)), i128::min_value());

pub fn saturating_neg(self) -> i128[src]

Saturating integer negation. Computes -self, saturating at numeric bounds instead of overflowing.

Examples

use extprim::i128::i128;

assert_eq!(i128::new(7).saturating_neg(), i128::new(-7));
assert_eq!(i128::min_value().saturating_neg(), i128::max_value());
assert_eq!(i128::max_value().saturating_neg(), i128::min_value() + i128::one());

impl i128[src]

pub fn checked_add(self, other: i128) -> Option<i128>[src]

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

Examples

use extprim::i128::i128;

assert_eq!(i128::new(5).checked_add(i128::new(-6)), Some(i128::new(-1)));
assert_eq!(i128::max_value().checked_add(i128::one()), None);

impl i128[src]

pub fn checked_sub(self, other: i128) -> Option<i128>[src]

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

Examples

use extprim::i128::i128;

assert_eq!(i128::new(6).checked_sub(i128::new(13)), Some(i128::new(-7)));
assert_eq!(i128::min_value().checked_sub(i128::one()), None);

impl i128[src]

pub fn wrapping_shl(self, shift: u32) -> i128[src]

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

Note that this is not the same as a rotate-left; the RHS of a wrapping shift-left is restricted to the range of the type, rather than the bits shifted out of the LHS being returned to the other end. The primitive integer types all implement a rotate_left function, which may be what you want instead.

Examples

use extprim::i128::i128;

assert_eq!(i128::new(1).wrapping_shl(127), i128::min_value());
assert_eq!(i128::new(19).wrapping_shl(256), i128::new(19));

pub fn wrapping_shr(self, shift: u32) -> i128[src]

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

Note that this is not the same as a rotate-right; the RHS of a wrapping shift-right is restricted to the range of the type, rather than the bits shifted out of the LHS being returned to the other end. The primitive integer types all implement a rotate_right function, which may be what you want instead.

Examples

use extprim::i128::i128;

assert_eq!(i128::new(-50).wrapping_shr(2), i128::new(-13));
assert_eq!(i128::new(19).wrapping_shr(257), i128::new(9));

pub fn overflowing_shl(self, other: u32) -> (i128, bool)[src]

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. 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::i128::i128;

assert_eq!(i128::new(1).overflowing_shl(127), (i128::min_value(), false));
assert_eq!(i128::new(19).overflowing_shl(256), (i128::new(19), true));

pub fn overflowing_shr(self, other: u32) -> (i128, bool)[src]

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. 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::i128::i128;

assert_eq!(i128::new(-50).overflowing_shr(2), (i128::new(-13), false));
assert_eq!(i128::new(19).overflowing_shr(257), (i128::new(9), true));

impl i128[src]

pub fn checked_shl(self, other: u32) -> Option<i128>[src]

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

Examples

use extprim::i128::i128;

assert_eq!(i128::new(1).checked_shl(127), Some(i128::min_value()));
assert_eq!(i128::new(19).checked_shl(256), None);

impl i128[src]

pub fn checked_shr(self, other: u32) -> Option<i128>[src]

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::i128::i128;

assert_eq!(i128::new(-50).checked_shr(2), Some(i128::new(-13)));
assert_eq!(i128::new(19).checked_shr(257), None);

impl i128[src]

pub fn overflowing_mul(self, other: i128) -> (i128, bool)[src]

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::i128::i128;

assert_eq!(i128::new(-6).overflowing_mul(i128::new(11)), (i128::new(-66), false));

let a = i128::from_parts(3, 1);
let b = i128::from_parts(-1, 3);
assert_eq!(a.overflowing_mul(b), (i128::from_parts(8, 3), true));

pub fn wrapping_mul(self, other: i128) -> i128[src]

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

Examples

use extprim::i128::i128;

assert_eq!(i128::new(-6).wrapping_mul(i128::new(11)), i128::new(-66));

let a = i128::from_parts(3, 1);
let b = i128::from_parts(-1, 3);
assert_eq!(a.wrapping_mul(b), i128::from_parts(8, 3));

pub fn saturating_mul(self, other: i128) -> i128[src]

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

Examples

use extprim::i128::i128;

assert_eq!(i128::new(-6).saturating_mul(i128::new(11)), i128::new(-66));

let a = i128::from_parts(3, 1);
let b = i128::from_parts(-1, 3);
assert_eq!(a.saturating_mul(b), i128::min_value());

impl i128[src]

pub fn checked_mul(self, other: i128) -> Option<i128>[src]

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

Examples

use extprim::i128::i128;

assert_eq!(i128::new(-6).checked_mul(i128::new(11)), Some(i128::new(-66)));

let a = i128::from_parts(3, 1);
let b = i128::from_parts(-1, 3);
assert_eq!(a.checked_mul(b), None);

impl i128[src]

pub fn wrapping_div(self, other: i128) -> i128[src]

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

The only case where such wrapping can occur is when one divides MIN / -1; this is equivalent to -MIN, a positive value that is too large to represent in the type. In such a case, this function returns MIN itself.

Panics

This function will panic if other is 0.

Examples

use extprim::i128::i128;

assert_eq!(i128::new(100).wrapping_div(i128::new(-8)), i128::new(-12));
assert_eq!(i128::min_value().wrapping_div(i128::new(-1)), i128::min_value());

pub fn wrapping_rem(self, other: i128) -> i128[src]

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

Such wrap-around never actually occurs mathematically; implementation artifacts make x % y invalid for MIN / -1 on a signed type. In such a case, this function returns 0.

Panics

This function will panic if other is 0.

Examples

use extprim::i128::i128;

assert_eq!(i128::new(100).wrapping_rem(i128::new(-8)), i128::new(4));
assert_eq!(i128::min_value().wrapping_rem(i128::new(-1)), i128::zero());

pub fn overflowing_div(self, other: i128) -> (i128, bool)[src]

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. If an overflow would occur then self is returned.

Panics

This function will panic if other is 0.

Examples

use extprim::i128::i128;

assert_eq!(i128::new(100).overflowing_div(i128::new(-8)), (i128::new(-12), false));
assert_eq!(i128::min_value().overflowing_div(i128::new(-1)), (i128::min_value(), true));

pub fn overflowing_rem(self, other: i128) -> (i128, bool)[src]

Calculates the remainder when self is divided by other.

Returns a tuple of the remainder after dividing along with a boolean indicating whether an arithmetic overflow would occur. If an overflow would occur then 0 is returned.

Panics

This function will panic if other is 0.

Examples

use extprim::i128::i128;

assert_eq!(i128::new(100).overflowing_rem(i128::new(-8)), (i128::new(4), false));
assert_eq!(i128::min_value().overflowing_rem(i128::new(-1)), (i128::zero(), true));

pub fn checked_div(self, other: i128) -> Option<i128>[src]

Checked integer division. Computes self / other, returning None if other == 0 or the operation results in underflow or overflow.

Examples

use extprim::i128::i128;

assert_eq!(i128::new(100).checked_div(i128::new(-8)), Some(i128::new(-12)));
assert_eq!(i128::min_value().checked_div(i128::new(-1)), None);
assert_eq!(i128::new(3).checked_div(i128::zero()), None);

pub fn checked_rem(self, other: i128) -> Option<i128>[src]

Checked integer remainder. Computes self % other, returning None if other == 0 or the operation results in underflow or overflow.

Examples

use extprim::i128::i128;

assert_eq!(i128::new(100).checked_rem(i128::new(-8)), Some(i128::new(4)));
assert_eq!(i128::min_value().checked_rem(i128::new(-1)), None);
assert_eq!(i128::new(3).checked_rem(i128::zero()), None);

impl i128[src]

pub fn min_value() -> i128[src]

Returns the smallest signed 128-bit integer (-170_141_183_460_469_231_731_687_303_715_884_105_728).

pub fn max_value() -> i128[src]

Returns the largest signed 128-bit integer (170_141_183_460_469_231_731_687_303_715_884_105_727).

pub fn zero() -> i128[src]

Returns the constant 0.

pub fn one() -> i128[src]

Returns the constant 1.

impl i128[src]

pub fn count_ones(self) -> u32[src]

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

Examples

use extprim::i128::i128;

assert_eq!(i128::new(-1000).count_ones(), 120);

pub fn count_zeros(self) -> u32[src]

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

Examples

use extprim::i128::i128;

assert_eq!(i128::new(-1000).count_zeros(), 8);

pub fn leading_zeros(self) -> u32[src]

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

use extprim::i128::i128;

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

pub fn trailing_zeros(self) -> u32[src]

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

Examples

use extprim::i128::i128;

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

pub fn rotate_left(self, shift: u32) -> i128[src]

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::i128::i128;

let a = i128::from_str_radix("29c30f1029939b146664242d97d9f649", 16).unwrap();
let b = i128::from_str_radix("-1e7877eb363275cccdede9341304db6c", 16).unwrap();
assert_eq!(a.rotate_left(7), b);

pub fn rotate_right(self, shift: u32) -> i128[src]

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

Examples

use extprim::i128::i128;

let a = i128::from_str_radix("29c30f1029939b146664242d97d9f649", 16).unwrap();
let b = i128::from_str_radix("-6dac79e1dfacd8c9d73337b7a4d04c14", 16).unwrap();
assert_eq!(a.rotate_right(7), b);

pub fn swap_bytes(self) -> i128[src]

Reverses the byte order of the integer.

Examples

use extprim::i128::i128;

let a = i128::from_str_radix("11122233344455560123456789abcdef", 16).unwrap();
let b = i128::from_str_radix("-1032547698badcfea9aabbcbccddedef", 16).unwrap();
assert_eq!(a.swap_bytes(), b);

pub fn from_be(x: Self) -> Self[src]

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.

pub fn from_le(x: Self) -> Self[src]

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.

pub fn to_be(self) -> Self[src]

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.

pub fn to_le(self) -> Self[src]

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.

pub fn pow(self, exp: u32) -> Self[src]

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

Examples

use extprim::i128::i128;
use std::str::FromStr;

assert_eq!(i128::new(-5).pow(29), i128::from_str("-186264514923095703125").unwrap());
assert_eq!(i128::new(-5).pow(30), i128::from_str("931322574615478515625").unwrap());

impl i128[src]

pub fn abs(self) -> Self[src]

Computes the absolute value of self.

Overflow behavior

The absolute value of i128::MIN cannot be represented as an i128, and attempting to calculate it will cause an overflow. This means that code in debug mode will trigger a panic on this case and optimized code will return MIN without a panic.

Examples

use extprim::i128::i128;
use std::i64;

assert_eq!(i128::new(10).abs(), i128::new(10));
assert_eq!(i128::new(-10).abs(), i128::new(10));
assert_eq!(i128::new(i64::MIN).abs(), i128::from_parts(0, 0x80000000_00000000));

pub fn signum(self) -> Self[src]

Returns a number representing sign of self.

  • 0 if the number is zero
  • 1 if the number is positive
  • -1 if the number is negative

Examples

use extprim::i128::i128;

assert_eq!(i128::max_value().signum(), i128::one());
assert_eq!(i128::zero().signum(), i128::zero());
assert_eq!(i128::min_value().signum(), -i128::one());

pub fn is_positive(self) -> bool[src]

Returns true if self is positive and false if the number is zero or negative.

Examples

use extprim::i128::i128;

assert!(  i128::max_value().is_positive());
assert!(! i128::zero().is_positive());
assert!(! i128::min_value().is_positive());

pub fn is_negative(self) -> bool[src]

Returns true if self is negative and false if the number is zero or positive.

Examples

use extprim::i128::i128;

assert!(! i128::max_value().is_negative());
assert!(! i128::zero().is_negative());
assert!(  i128::min_value().is_negative());

impl i128[src]

pub fn from_str_radix(src: &str, radix: u32) -> Result<i128, ParseIntError>[src]

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

Leading and trailing whitespace represent an error.

Examples

use extprim::i128::i128;

assert_eq!(i128::from_str_radix("123456abcdef1234567890", 16),
            Ok(i128::from_parts(0x123456, 0xabcdef1234567890)));

Trait Implementations

impl ToExtraPrimitive for i128[src]

impl Eq for i128[src]

impl Copy for i128[src]

impl PartialOrd<i128> for i128[src]

#[must_use]
fn lt(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

#[must_use]
fn le(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

#[must_use]
fn gt(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests greater than (for self and other) and is used by the > operator. Read more

#[must_use]
fn ge(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl Default for i128[src]

impl PartialEq<i128> for i128[src]

impl From<i8> for i128[src]

impl From<i16> for i128[src]

impl From<i32> for i128[src]

impl From<i64> for i128[src]

impl From<i128> for i128[src]

impl Clone for i128[src]

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

Performs copy-assignment from source. Read more

impl Ord for i128[src]

fn max(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the maximum of two values. Read more

fn min(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the minimum of two values. Read more

fn clamp(self, min: Self, max: Self) -> Self[src]

🔬 This is a nightly-only experimental API. (clamp)

Restrict a value to a certain interval. Read more

impl Display for i128[src]

impl Debug for i128[src]

impl Add<i128> for i128[src]

type Output = Self

The resulting type after applying the + operator.

impl Sub<i128> for i128[src]

type Output = Self

The resulting type after applying the - operator.

impl Mul<i128> for i128[src]

type Output = Self

The resulting type after applying the * operator.

impl Div<i128> for i128[src]

type Output = Self

The resulting type after applying the / operator.

impl Rem<i128> for i128[src]

type Output = Self

The resulting type after applying the % operator.

impl Neg for i128[src]

type Output = Self

The resulting type after applying the - operator.

impl AddAssign<i128> for i128[src]

impl SubAssign<i128> for i128[src]

impl MulAssign<i128> for i128[src]

impl DivAssign<i128> for i128[src]

impl RemAssign<i128> for i128[src]

impl Not for i128[src]

type Output = Self

The resulting type after applying the ! operator.

impl BitAnd<i128> for i128[src]

type Output = Self

The resulting type after applying the & operator.

impl BitOr<i128> for i128[src]

type Output = Self

The resulting type after applying the | operator.

impl BitXor<i128> for i128[src]

type Output = Self

The resulting type after applying the ^ operator.

impl Shl<u8> for i128[src]

type Output = Self

The resulting type after applying the << operator.

impl Shl<u16> for i128[src]

type Output = Self

The resulting type after applying the << operator.

impl Shl<u32> for i128[src]

type Output = Self

The resulting type after applying the << operator.

impl Shl<u64> for i128[src]

type Output = Self

The resulting type after applying the << operator.

impl Shl<usize> for i128[src]

type Output = Self

The resulting type after applying the << operator.

impl Shl<i8> for i128[src]

type Output = Self

The resulting type after applying the << operator.

impl Shl<i16> for i128[src]

type Output = Self

The resulting type after applying the << operator.

impl Shl<i32> for i128[src]

type Output = Self

The resulting type after applying the << operator.

impl Shl<i64> for i128[src]

type Output = Self

The resulting type after applying the << operator.

impl Shl<isize> for i128[src]

type Output = Self

The resulting type after applying the << operator.

impl Shr<u8> for i128[src]

type Output = Self

The resulting type after applying the >> operator.

impl Shr<u16> for i128[src]

type Output = Self

The resulting type after applying the >> operator.

impl Shr<u32> for i128[src]

type Output = Self

The resulting type after applying the >> operator.

impl Shr<u64> for i128[src]

type Output = Self

The resulting type after applying the >> operator.

impl Shr<usize> for i128[src]

type Output = Self

The resulting type after applying the >> operator.

impl Shr<i8> for i128[src]

type Output = Self

The resulting type after applying the >> operator.

impl Shr<i16> for i128[src]

type Output = Self

The resulting type after applying the >> operator.

impl Shr<i32> for i128[src]

type Output = Self

The resulting type after applying the >> operator.

impl Shr<i64> for i128[src]

type Output = Self

The resulting type after applying the >> operator.

impl Shr<isize> for i128[src]

type Output = Self

The resulting type after applying the >> operator.

impl BitAndAssign<i128> for i128[src]

impl BitOrAssign<i128> for i128[src]

impl BitXorAssign<i128> for i128[src]

impl ShlAssign<u8> for i128[src]

impl ShlAssign<u16> for i128[src]

impl ShlAssign<u32> for i128[src]

impl ShlAssign<u64> for i128[src]

impl ShlAssign<usize> for i128[src]

impl ShlAssign<i8> for i128[src]

impl ShlAssign<i16> for i128[src]

impl ShlAssign<i32> for i128[src]

impl ShlAssign<i64> for i128[src]

impl ShlAssign<isize> for i128[src]

impl ShrAssign<u8> for i128[src]

impl ShrAssign<u16> for i128[src]

impl ShrAssign<u32> for i128[src]

impl ShrAssign<u64> for i128[src]

impl ShrAssign<usize> for i128[src]

impl ShrAssign<i8> for i128[src]

impl ShrAssign<i16> for i128[src]

impl ShrAssign<i32> for i128[src]

impl ShrAssign<i64> for i128[src]

impl ShrAssign<isize> for i128[src]

impl Hash for i128[src]

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

Feeds a slice of this type into the given [Hasher]. Read more

impl Product<i128> for i128[src]

impl<'a> Product<&'a i128> for i128[src]

impl Sum<i128> for i128[src]

impl<'a> Sum<&'a i128> for i128[src]

impl FromStr for i128[src]

type Err = ParseIntError

The associated error which can be returned from parsing.

impl Octal for i128[src]

impl Binary for i128[src]

impl LowerHex for i128[src]

impl UpperHex for i128[src]

impl Serialize for i128[src]

impl<'de> Deserialize<'de> for i128[src]

impl Distribution<i128> for Standard[src]

fn sample_iter<R>(&'a self, rng: &'a mut R) -> DistIter<'a, Self, R, T> where
    R: Rng
[src]

Create an iterator that generates random values of T, using rng as the source of randomness. Read more

impl Bounded for i128[src]

impl ToPrimitive for i128[src]

fn to_isize(&self) -> Option<isize>[src]

Converts the value of self to an isize.

fn to_i8(&self) -> Option<i8>[src]

Converts the value of self to an i8.

fn to_i16(&self) -> Option<i16>[src]

Converts the value of self to an i16.

fn to_i32(&self) -> Option<i32>[src]

Converts the value of self to an i32.

fn to_usize(&self) -> Option<usize>[src]

Converts the value of self to a usize.

fn to_u8(&self) -> Option<u8>[src]

Converts the value of self to an u8.

fn to_u16(&self) -> Option<u16>[src]

Converts the value of self to an u16.

fn to_u32(&self) -> Option<u32>[src]

Converts the value of self to an u32.

fn to_f32(&self) -> Option<f32>[src]

Converts the value of self to an f32.

impl FromPrimitive for i128[src]

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

Convert an isize to return an optional value of this type. If the value cannot be represented by this value, then None is returned. Read more

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

Convert an i8 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

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

Convert an i16 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

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

Convert an i32 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

fn from_i128(n: i128) -> Option<Self>[src]

Convert an i128 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

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

Convert a usize to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

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

Convert an u8 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

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

Convert an u16 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

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

Convert an u32 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

fn from_u128(n: u128) -> Option<Self>[src]

Convert an u128 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

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

Convert a f32 to return an optional value of this type. If the type cannot be represented by this value, then None is returned. Read more

impl NumCast for i128[src]

impl Num for i128[src]

type FromStrRadixErr = ParseIntError

impl Zero for i128[src]

impl One for i128[src]

fn is_one(&self) -> bool where
    Self: PartialEq<Self>, 
[src]

Returns true if self is equal to the multiplicative identity. Read more

impl PrimInt for i128[src]

impl Saturating for i128[src]

impl CheckedAdd for i128[src]

impl CheckedMul for i128[src]

impl CheckedSub for i128[src]

impl CheckedDiv for i128[src]

impl Signed for i128[src]

Auto Trait Implementations

impl Send for i128

impl Sync for i128

Blanket Implementations

impl<T> ToExtraPrimitive for T where
    T: ToPrimitive
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> From for T[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]

impl<T, Rhs, Output> NumOps for T where
    T: Sub<Rhs, Output = Output> + Mul<Rhs, Output = Output> + Div<Rhs, Output = Output> + Add<Rhs, Output = Output> + Rem<Rhs, Output = Output>, 
[src]

impl<T, Rhs> NumAssignOps for T where
    T: AddAssign<Rhs> + SubAssign<Rhs> + MulAssign<Rhs> + DivAssign<Rhs> + RemAssign<Rhs>, 
[src]

impl<T> NumAssign for T where
    T: Num + NumAssignOps<T>, 
[src]