Struct casper_types::U512
source · #[repr(C)]pub struct U512(pub [u64; 8]);
Expand description
Little-endian large integer type
Tuple Fields§
§0: [u64; 8]
Implementations§
source§impl U512
impl U512
sourcepub fn from_str_radix(txt: &str, radix: u32) -> Result<Self, FromStrRadixErr>
pub fn from_str_radix(txt: &str, radix: u32) -> Result<Self, FromStrRadixErr>
Converts a string slice in a given base to an integer. Only supports radixes of 10 and 16.
sourcepub fn from_dec_str(value: &str) -> Result<Self, FromDecStrErr>
pub fn from_dec_str(value: &str) -> Result<Self, FromDecStrErr>
Convert from a decimal string.
sourcepub fn as_u64(&self) -> u64
pub fn as_u64(&self) -> u64
Conversion to u64 with overflow checking
Panics
Panics if the number is larger than u64::max_value().
sourcepub fn as_usize(&self) -> usize
pub fn as_usize(&self) -> usize
Conversion to usize with overflow checking
Panics
Panics if the number is larger than usize::max_value().
sourcepub fn leading_zeros(&self) -> u32
pub fn leading_zeros(&self) -> u32
Returns the number of leading zeros in the binary representation of self.
sourcepub fn trailing_zeros(&self) -> u32
pub fn trailing_zeros(&self) -> u32
Returns the number of trailing zeros in the binary representation of self.
sourcepub fn to_big_endian(&self, bytes: &mut [u8])
pub fn to_big_endian(&self, bytes: &mut [u8])
Write to the slice in big-endian format.
sourcepub fn to_little_endian(&self, bytes: &mut [u8])
pub fn to_little_endian(&self, bytes: &mut [u8])
Write to the slice in little-endian format.
sourcepub fn div_mod(self, other: Self) -> (Self, Self)
pub fn div_mod(self, other: Self) -> (Self, Self)
sourcepub fn integer_sqrt(&self) -> Self
pub fn integer_sqrt(&self) -> Self
Compute the highest n
such that n * n <= self
.
sourcepub fn pow(self, expon: Self) -> Self
pub fn pow(self, expon: Self) -> Self
Fast exponentiation by squaring https://en.wikipedia.org/wiki/Exponentiation_by_squaring
Panics
Panics if the result overflows the type.
sourcepub fn overflowing_pow(self, expon: Self) -> (Self, bool)
pub fn overflowing_pow(self, expon: Self) -> (Self, bool)
Fast exponentiation by squaring. Returns result and overflow flag.
sourcepub fn checked_pow(self, expon: U512) -> Option<U512>
pub fn checked_pow(self, expon: U512) -> Option<U512>
Checked exponentiation. Returns None
if overflow occurred.
sourcepub fn overflowing_add(self, other: U512) -> (U512, bool)
pub fn overflowing_add(self, other: U512) -> (U512, bool)
Addition which overflows and returns a flag if it does.
sourcepub fn saturating_add(self, other: U512) -> U512
pub fn saturating_add(self, other: U512) -> U512
Addition which saturates at the maximum value (Self::MAX).
sourcepub fn checked_add(self, other: U512) -> Option<U512>
pub fn checked_add(self, other: U512) -> Option<U512>
Checked addition. Returns None
if overflow occurred.
sourcepub fn overflowing_sub(self, other: U512) -> (U512, bool)
pub fn overflowing_sub(self, other: U512) -> (U512, bool)
Subtraction which underflows and returns a flag if it does.
sourcepub fn saturating_sub(self, other: U512) -> U512
pub fn saturating_sub(self, other: U512) -> U512
Subtraction which saturates at zero.
sourcepub fn checked_sub(self, other: U512) -> Option<U512>
pub fn checked_sub(self, other: U512) -> Option<U512>
Checked subtraction. Returns None
if overflow occurred.
sourcepub fn abs_diff(self, other: U512) -> U512
pub fn abs_diff(self, other: U512) -> U512
Computes the absolute difference between self and other.
sourcepub fn overflowing_mul(self, other: U512) -> (U512, bool)
pub fn overflowing_mul(self, other: U512) -> (U512, bool)
Multiply with overflow, returning a flag if it does.
sourcepub fn saturating_mul(self, other: U512) -> U512
pub fn saturating_mul(self, other: U512) -> U512
Multiplication which saturates at the maximum value..
sourcepub fn checked_mul(self, other: U512) -> Option<U512>
pub fn checked_mul(self, other: U512) -> Option<U512>
Checked multiplication. Returns None
if overflow occurred.
sourcepub fn checked_div(self, other: U512) -> Option<U512>
pub fn checked_div(self, other: U512) -> Option<U512>
Checked division. Returns None
if other == 0
.
sourcepub fn checked_rem(self, other: U512) -> Option<U512>
pub fn checked_rem(self, other: U512) -> Option<U512>
Checked modulus. Returns None
if other == 0
.
sourcepub fn overflowing_neg(self) -> (U512, bool)
pub fn overflowing_neg(self) -> (U512, bool)
Negation with overflow.
sourcepub fn checked_neg(self) -> Option<U512>
pub fn checked_neg(self) -> Option<U512>
Checked negation. Returns None
unless self == 0
.
sourcepub fn from_big_endian(slice: &[u8]) -> Self
pub fn from_big_endian(slice: &[u8]) -> Self
Converts from big endian representation bytes in memory.
sourcepub fn from_little_endian(slice: &[u8]) -> Self
pub fn from_little_endian(slice: &[u8]) -> Self
Converts from little endian representation bytes in memory.
Trait Implementations§
source§impl AddAssign for U512
impl AddAssign for U512
source§fn add_assign(&mut self, other: U512)
fn add_assign(&mut self, other: U512)
+=
operation. Read moresource§impl AsPrimitive<U128> for U512
impl AsPrimitive<U128> for U512
source§impl AsPrimitive<U256> for U512
impl AsPrimitive<U256> for U512
source§impl AsPrimitive<U512> for U128
impl AsPrimitive<U512> for U128
source§impl AsPrimitive<U512> for U256
impl AsPrimitive<U512> for U256
source§impl AsPrimitive<U512> for U512
impl AsPrimitive<U512> for U512
source§impl AsPrimitive<U512> for i32
impl AsPrimitive<U512> for i32
source§impl AsPrimitive<U512> for i64
impl AsPrimitive<U512> for i64
source§impl AsPrimitive<U512> for u32
impl AsPrimitive<U512> for u32
source§impl AsPrimitive<U512> for u64
impl AsPrimitive<U512> for u64
source§impl AsPrimitive<U512> for u8
impl AsPrimitive<U512> for u8
source§impl AsPrimitive<i32> for U512
impl AsPrimitive<i32> for U512
source§impl AsPrimitive<i64> for U512
impl AsPrimitive<i64> for U512
source§impl AsPrimitive<u32> for U512
impl AsPrimitive<u32> for U512
source§impl AsPrimitive<u64> for U512
impl AsPrimitive<u64> for U512
source§impl AsPrimitive<u8> for U512
impl AsPrimitive<u8> for U512
source§impl BitAndAssign for U512
impl BitAndAssign for U512
source§fn bitand_assign(&mut self, rhs: U512)
fn bitand_assign(&mut self, rhs: U512)
&=
operation. Read moresource§impl BitOrAssign for U512
impl BitOrAssign for U512
source§fn bitor_assign(&mut self, rhs: U512)
fn bitor_assign(&mut self, rhs: U512)
|=
operation. Read moresource§impl BitXorAssign for U512
impl BitXorAssign for U512
source§fn bitxor_assign(&mut self, rhs: U512)
fn bitxor_assign(&mut self, rhs: U512)
^=
operation. Read moresource§impl CheckedAdd for U512
impl CheckedAdd for U512
source§impl CheckedMul for U512
impl CheckedMul for U512
source§impl CheckedSub for U512
impl CheckedSub for U512
source§impl<'de> Deserialize<'de> for U512
impl<'de> Deserialize<'de> for U512
source§fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>
fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>
source§impl Distribution<U512> for Standard
impl Distribution<U512> for Standard
source§fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> U512
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> U512
T
, using rng
as the source of randomness.source§impl<T> DivAssign<T> for U512where
T: Into<U512>,
impl<T> DivAssign<T> for U512where T: Into<U512>,
source§fn div_assign(&mut self, other: T)
fn div_assign(&mut self, other: T)
/=
operation. Read moresource§impl Integer for U512
impl Integer for U512
source§fn div_floor(&self, other: &Self) -> Self
fn div_floor(&self, other: &Self) -> Self
Unsigned integer division. Returns the same result as div
(/
).
source§fn mod_floor(&self, other: &Self) -> Self
fn mod_floor(&self, other: &Self) -> Self
Unsigned integer modulo operation. Returns the same result as rem
(%
).
source§fn gcd(&self, other: &Self) -> Self
fn gcd(&self, other: &Self) -> Self
Calculates the Greatest Common Divisor (GCD) of the number and other
source§fn lcm(&self, other: &Self) -> Self
fn lcm(&self, other: &Self) -> Self
Calculates the Lowest Common Multiple (LCM) of the number and other
.
source§fn gcd_lcm(&self, other: &Self) -> (Self, Self)
fn gcd_lcm(&self, other: &Self) -> (Self, Self)
Calculates the Greatest Common Divisor (GCD) and
Lowest Common Multiple (LCM) of the number and other
.
source§fn is_multiple_of(&self, other: &Self) -> bool
fn is_multiple_of(&self, other: &Self) -> bool
Returns true
if the number is a multiple of other
.
source§fn div_rem(&self, other: &Self) -> (Self, Self)
fn div_rem(&self, other: &Self) -> (Self, Self)
Simultaneous truncated integer division and modulus.
source§fn extended_gcd(&self, other: &Self) -> ExtendedGcd<Self>where
Self: Clone,
fn extended_gcd(&self, other: &Self) -> ExtendedGcd<Self>where Self: Clone,
source§fn div_mod_floor(&self, other: &Self) -> (Self, Self)
fn div_mod_floor(&self, other: &Self) -> (Self, Self)
(quotient, remainder)
. Read moresource§impl MulAssign<i16> for U512
impl MulAssign<i16> for U512
source§fn mul_assign(&mut self, other: i16)
fn mul_assign(&mut self, other: i16)
*=
operation. Read moresource§impl MulAssign<i32> for U512
impl MulAssign<i32> for U512
source§fn mul_assign(&mut self, other: i32)
fn mul_assign(&mut self, other: i32)
*=
operation. Read moresource§impl MulAssign<i64> for U512
impl MulAssign<i64> for U512
source§fn mul_assign(&mut self, other: i64)
fn mul_assign(&mut self, other: i64)
*=
operation. Read moresource§impl MulAssign<i8> for U512
impl MulAssign<i8> for U512
source§fn mul_assign(&mut self, other: i8)
fn mul_assign(&mut self, other: i8)
*=
operation. Read moresource§impl MulAssign<isize> for U512
impl MulAssign<isize> for U512
source§fn mul_assign(&mut self, other: isize)
fn mul_assign(&mut self, other: isize)
*=
operation. Read moresource§impl MulAssign<u16> for U512
impl MulAssign<u16> for U512
source§fn mul_assign(&mut self, other: u16)
fn mul_assign(&mut self, other: u16)
*=
operation. Read moresource§impl MulAssign<u32> for U512
impl MulAssign<u32> for U512
source§fn mul_assign(&mut self, other: u32)
fn mul_assign(&mut self, other: u32)
*=
operation. Read moresource§impl MulAssign<u64> for U512
impl MulAssign<u64> for U512
source§fn mul_assign(&mut self, other: u64)
fn mul_assign(&mut self, other: u64)
*=
operation. Read moresource§impl MulAssign<u8> for U512
impl MulAssign<u8> for U512
source§fn mul_assign(&mut self, other: u8)
fn mul_assign(&mut self, other: u8)
*=
operation. Read moresource§impl MulAssign<usize> for U512
impl MulAssign<usize> for U512
source§fn mul_assign(&mut self, other: usize)
fn mul_assign(&mut self, other: usize)
*=
operation. Read moresource§impl MulAssign for U512
impl MulAssign for U512
source§fn mul_assign(&mut self, other: U512)
fn mul_assign(&mut self, other: U512)
*=
operation. Read moresource§impl Num for U512
impl Num for U512
type FromStrRadixErr = UIntParseError
source§fn from_str_radix(str: &str, radix: u32) -> Result<Self, Self::FromStrRadixErr>
fn from_str_radix(str: &str, radix: u32) -> Result<Self, Self::FromStrRadixErr>
2..=36
). Read moresource§impl Ord for U512
impl Ord for U512
source§impl PartialEq for U512
impl PartialEq for U512
source§impl PartialOrd for U512
impl PartialOrd for U512
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl<T> RemAssign<T> for U512where
T: Into<U512> + Copy,
impl<T> RemAssign<T> for U512where T: Into<U512> + Copy,
source§fn rem_assign(&mut self, other: T)
fn rem_assign(&mut self, other: T)
%=
operation. Read moresource§impl<T> ShlAssign<T> for U512where
T: Into<U512>,
impl<T> ShlAssign<T> for U512where T: Into<U512>,
source§fn shl_assign(&mut self, shift: T)
fn shl_assign(&mut self, shift: T)
<<=
operation. Read moresource§impl<T> ShrAssign<T> for U512where
T: Into<U512>,
impl<T> ShrAssign<T> for U512where T: Into<U512>,
source§fn shr_assign(&mut self, shift: T)
fn shr_assign(&mut self, shift: T)
>>=
operation. Read moresource§impl SubAssign for U512
impl SubAssign for U512
source§fn sub_assign(&mut self, other: U512)
fn sub_assign(&mut self, other: U512)
-=
operation. Read moresource§impl ToBytes for U512
impl ToBytes for U512
source§fn serialized_length(&self) -> usize
fn serialized_length(&self) -> usize
Vec<u8>
which would be returned from a successful call to
to_bytes()
or into_bytes()
. The data is not actually serialized, so this call is
relatively cheap.source§impl WrappingAdd for U512
impl WrappingAdd for U512
source§fn wrapping_add(&self, other: &U512) -> U512
fn wrapping_add(&self, other: &U512) -> U512
self + other
, wrapping around at the boundary of
the type.source§impl WrappingSub for U512
impl WrappingSub for U512
source§fn wrapping_sub(&self, other: &U512) -> U512
fn wrapping_sub(&self, other: &U512) -> U512
self - other
, wrapping around at the boundary
of the type.