Trait stdext::num::integer::Integer[][src]

pub trait Integer: Sized + Add<Self, Output = Self> + AddAssign + Sub<Self, Output = Self> + SubAssign + Shr<Self, Output = Self> + ShrAssign + Shl<Self, Output = Self> + ShlAssign + BitAnd<Self, Output = Self> + BitAndAssign + BitOr<Self, Output = Self> + BitOrAssign + BitXor<Self, Output = Self> + BitXorAssign + Div<Self, Output = Self> + DivAssign + Mul<Self, Output = Self> + MulAssign + Copy {
    const MIN: Self;
    const MAX: Self;
    const BITS: u32;
Show methods fn from_str_radix(src: &str, radix: u32) -> Result<Self, ParseIntError>;
fn count_ones(self) -> u32;
fn count_zeros(self) -> u32;
fn leading_zeros(self) -> u32;
fn trailing_zeros(self) -> u32;
fn leading_ones(self) -> u32;
fn trailing_ones(self) -> u32;
fn rotate_left(self, n: u32) -> Self;
fn rotate_right(self, n: u32) -> Self;
fn swap_bytes(self) -> Self;
fn reverse_bits(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 checked_add(self, rhs: Self) -> Option<Self>;
fn checked_sub(self, rhs: Self) -> Option<Self>;
fn checked_mul(self, rhs: Self) -> Option<Self>;
fn checked_div(self, rhs: Self) -> Option<Self>;
fn checked_div_euclid(self, rhs: Self) -> Option<Self>;
fn checked_rem(self, rhs: Self) -> Option<Self>;
fn checked_rem_euclid(self, rhs: Self) -> Option<Self>;
fn checked_neg(self) -> Option<Self>;
fn checked_shl(self, rhs: u32) -> Option<Self>;
fn checked_shr(self, rhs: u32) -> Option<Self>;
fn checked_pow(self, exp: u32) -> Option<Self>;
fn saturating_add(self, rhs: Self) -> Self;
fn saturating_sub(self, rhs: Self) -> Self;
fn saturating_mul(self, rhs: Self) -> Self;
fn saturating_pow(self, exp: u32) -> Self;
fn wrapping_add(self, rhs: Self) -> Self;
fn wrapping_sub(self, rhs: Self) -> Self;
fn wrapping_mul(self, rhs: Self) -> Self;
fn wrapping_div(self, rhs: Self) -> Self;
fn wrapping_div_euclid(self, rhs: Self) -> Self;
fn wrapping_rem(self, rhs: Self) -> Self;
fn wrapping_rem_euclid(self, rhs: Self) -> Self;
fn wrapping_neg(self) -> Self;
fn wrapping_shl(self, rhs: u32) -> Self;
fn wrapping_shr(self, rhs: u32) -> Self;
fn wrapping_pow(self, exp: u32) -> Self;
fn overflowing_add(self, rhs: Self) -> (Self, bool);
fn overflowing_sub(self, rhs: Self) -> (Self, bool);
fn overflowing_mul(self, rhs: Self) -> (Self, bool);
fn overflowing_div(self, rhs: Self) -> (Self, bool);
fn overflowing_div_euclid(self, rhs: Self) -> (Self, bool);
fn overflowing_rem(self, rhs: Self) -> (Self, bool);
fn overflowing_rem_euclid(self, rhs: Self) -> (Self, bool);
fn overflowing_neg(self) -> (Self, bool);
fn overflowing_shr(self, rhs: u32) -> (Self, bool);
fn overflowing_pow(self, exp: u32) -> (Self, bool);
fn pow(self, exp: u32) -> Self;
fn div_euclid(self, rhs: Self) -> Self;
fn rem_euclid(self, rhs: Self) -> Self;
}
Expand description

Built-in integers interface exposed as a trait.

This trait is implemented for all the built-in integer types and copies their interface completely, so it’s possible to write generic code that accepts any integer number.

Interface includes all the trait implementations as well, such as Copy, Add or BitXorAssign.

Caveats

  • <to/from/as>_<be/ne/le>_bytes are not implemented, as the return type (array of generic const length that depends on the trait itself) cannot in be expressed in stable rust.

  • is_power_of_two / next_power_of_two / checked_next_power_of_two methods are not implemented, as they exist for the unsigned numbers only.

Associated Constants

The smallest value that can be represented by this integer type.

The largest value that can be represented by this integer type.

The size of this integer type in bits.

Required methods

See u128::pow.

Implementations on Foreign Types

Implementors