pub trait Integer:
Number
+ Eq
+ Ord
+ BitAnd<Output = Self>
+ BitAndAssign
+ BitOr<Output = Self>
+ BitOrAssign
+ BitXor<Output = Self>
+ BitXorAssign
+ Not<Output = Self>
+ Shl<Self, Output = Self>
+ Shl<i32, Output = Self>
+ ShlAssign<i32>
+ Shr<i32, Output = Self>
+ ShrAssign<i32> {
const ZERO: Self;
const ONE: Self;
const TWO: Self;
const MAX: Self;
const MIN: Self;
const BITS: usize;
Show 25 methods
// Required methods
fn leading_zeros(self) -> u32;
fn trailing_zeros(self) -> u32;
fn pow(self, exp: u32) -> Self;
fn checked_pow(self, exp: u32) -> Option<Self>;
fn overflowing_pow(self, exp: u32) -> (Self, bool);
fn checked_add(self, i: Self) -> Option<Self>;
fn checked_sub(self, i: Self) -> Option<Self>;
fn checked_mul(self, i: Self) -> Option<Self>;
fn overflowing_add(self, i: Self) -> (Self, bool);
fn overflowing_sub(self, i: Self) -> (Self, bool);
fn overflowing_mul(self, i: Self) -> (Self, bool);
fn wrapping_add(self, i: Self) -> Self;
fn wrapping_sub(self, i: Self) -> Self;
fn wrapping_mul(self, i: Self) -> Self;
fn wrapping_neg(self) -> Self;
fn saturating_add(self, i: Self) -> Self;
fn saturating_sub(self, i: Self) -> Self;
fn saturating_mul(self, i: Self) -> Self;
// Provided methods
fn ceil_divmod(self, y: Self) -> (Self, i32) { ... }
fn ceil_div(self, y: Self) -> Self { ... }
fn ceil_mod(self, y: Self) -> i32 { ... }
fn bit_length(self) -> u32 { ... }
fn is_odd(self) -> bool { ... }
fn is_even(self) -> bool { ... }
fn overflow_digits(radix: u32) -> usize { ... }
}
Expand description
Defines a trait that supports integral operations.
Required Associated Constants§
const ZERO: Self
const ONE: Self
const TWO: Self
const MAX: Self
const MIN: Self
const BITS: usize
Required Methods§
fn leading_zeros(self) -> u32
fn trailing_zeros(self) -> u32
fn pow(self, exp: u32) -> Self
fn checked_pow(self, exp: u32) -> Option<Self>
fn overflowing_pow(self, exp: u32) -> (Self, bool)
fn checked_add(self, i: Self) -> Option<Self>
fn checked_sub(self, i: Self) -> Option<Self>
fn checked_mul(self, i: Self) -> Option<Self>
fn overflowing_add(self, i: Self) -> (Self, bool)
fn overflowing_sub(self, i: Self) -> (Self, bool)
fn overflowing_mul(self, i: Self) -> (Self, bool)
fn wrapping_add(self, i: Self) -> Self
fn wrapping_sub(self, i: Self) -> Self
fn wrapping_mul(self, i: Self) -> Self
fn wrapping_neg(self) -> Self
fn saturating_add(self, i: Self) -> Self
fn saturating_sub(self, i: Self) -> Self
fn saturating_mul(self, i: Self) -> Self
Provided Methods§
Sourcefn ceil_divmod(self, y: Self) -> (Self, i32)
fn ceil_divmod(self, y: Self) -> (Self, i32)
Get the fast ceiling of the quotient from integer division. Not safe, since the remainder can easily overflow.
Sourcefn ceil_div(self, y: Self) -> Self
fn ceil_div(self, y: Self) -> Self
Get the fast ceiling of the quotient from integer division. Not safe, since the remainder can easily overflow.
Sourcefn ceil_mod(self, y: Self) -> i32
fn ceil_mod(self, y: Self) -> i32
Get the fast ceiling modulus from integer division. Not safe, since the remainder can easily overflow.
Sourcefn bit_length(self) -> u32
fn bit_length(self) -> u32
Get the number of bits in a value.
Sourcefn overflow_digits(radix: u32) -> usize
fn overflow_digits(radix: u32) -> usize
Get the maximum number of digits before the slice will overflow.
This is effectively the floor(log(2**BITS-1, radix)), but we can try to go a bit lower without worrying too much.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.