Struct sp_core::U512 [−]
Expand description
Little-endian large integer type 512-bits unsigned integer.
Implementations
impl U512
impl U512
impl U512
impl U512
pub fn from_str_radix(txt: &str, radix: u32) -> Result<U512, FromStrRadixErr>
pub fn from_str_radix(txt: &str, radix: u32) -> Result<U512, FromStrRadixErr>
Converts a string slice in a given base to an integer. Only supports radixes of 10 and 16.
pub fn from_dec_str(value: &str) -> Result<U512, FromDecStrErr>
pub fn from_dec_str(value: &str) -> Result<U512, FromDecStrErr>
Convert from a decimal string.
Conversion to u64 with overflow checking
Panics
Panics if the number is larger than u64::max_value().
Conversion to usize with overflow checking
Panics
Panics if the number is larger than usize::max_value().
pub fn leading_zeros(&self) -> u32
pub fn leading_zeros(&self) -> u32
Returns the number of leading zeros in the binary representation of self.
pub fn trailing_zeros(&self) -> u32
pub fn trailing_zeros(&self) -> u32
Returns the number of trailing zeros in the binary representation of self.
pub 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.
pub 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.
Fast exponentiation by squaring https://en.wikipedia.org/wiki/Exponentiation_by_squaring
Panics
Panics if the result overflows the type.
Fast exponentiation by squaring. Returns result and overflow flag.
pub fn checked_pow(self, expon: U512) -> Option<U512>
pub fn checked_pow(self, expon: U512) -> Option<U512>
Checked exponentiation. Returns None
if overflow occurred.
pub fn saturating_add(self, other: U512) -> U512
pub fn saturating_add(self, other: U512) -> U512
Addition which saturates at the maximum value (Self::max_value()).
pub fn checked_add(self, other: U512) -> Option<U512>
pub fn checked_add(self, other: U512) -> Option<U512>
Checked addition. Returns None
if overflow occurred.
Subtraction which underflows and returns a flag if it does.
pub fn saturating_sub(self, other: U512) -> U512
pub fn saturating_sub(self, other: U512) -> U512
Subtraction which saturates at zero.
pub fn checked_sub(self, other: U512) -> Option<U512>
pub fn checked_sub(self, other: U512) -> Option<U512>
Checked subtraction. Returns None
if overflow occurred.
Multiply with overflow, returning a flag if it does.
pub fn saturating_mul(self, other: U512) -> U512
pub fn saturating_mul(self, other: U512) -> U512
Multiplication which saturates at the maximum value..
pub fn checked_mul(self, other: U512) -> Option<U512>
pub fn checked_mul(self, other: U512) -> Option<U512>
Checked multiplication. Returns None
if overflow occurred.
pub fn checked_div(self, other: U512) -> Option<U512>
pub fn checked_div(self, other: U512) -> Option<U512>
Checked division. Returns None
if other == 0
.
pub fn checked_rem(self, other: U512) -> Option<U512>
pub fn checked_rem(self, other: U512) -> Option<U512>
Checked modulus. Returns None
if other == 0
.
pub fn overflowing_neg(self) -> (U512, bool)
pub fn overflowing_neg(self) -> (U512, bool)
Negation with overflow.
pub fn checked_neg(self) -> Option<U512>
pub fn checked_neg(self) -> Option<U512>
Checked negation. Returns None
unless self == 0
.
pub fn from_big_endian(slice: &[u8]) -> U512
pub fn from_big_endian(slice: &[u8]) -> U512
Converts from big endian representation bytes in memory.
pub fn from_little_endian(slice: &[u8]) -> U512
pub fn from_little_endian(slice: &[u8]) -> U512
Converts from little endian representation bytes in memory.
Trait Implementations
pub fn add_assign(&mut self, other: U512)
pub fn add_assign(&mut self, other: U512)
Performs the +=
operation. Read more
Get a reference to the underlying little-endian words.
impl Decode for U512
impl Decode for U512
Attempt to deserialise the value from input.
Attempt to skip the encoded value from input. Read more
fn encoded_fixed_size() -> Option<usize>
fn encoded_fixed_size() -> Option<usize>
Returns the fixed encoded size of the type. Read more
impl<'de> Deserialize<'de> for U512
impl<'de> Deserialize<'de> for U512
pub fn deserialize<D>(
deserializer: D
) -> Result<U512, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
pub fn deserialize<D>(
deserializer: D
) -> Result<U512, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
pub fn div_assign(&mut self, other: T)
pub fn div_assign(&mut self, other: T)
Performs the /=
operation. Read more
impl Encode for U512
impl Encode for U512
pub fn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R,
pub fn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R,
Convert self to a slice and then invoke the given closure with it.
Convert self to a slice and append it to the destination.
fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Calculates the encoded size. Read more
impl MallocSizeOf for U512
impl MallocSizeOf for U512
Measure the heap usage of all descendant heap-allocated structures, but
not the space taken up by the value itself.
If T::size_of
is a constant, consider implementing constant_size
as well. Read more
pub fn constant_size() -> Option<usize>
pub fn constant_size() -> Option<usize>
Used to optimize MallocSizeOf
implementation for collections
like Vec
and HashMap
to avoid iterating over them unnecessarily.
The Self: Sized
bound is for object safety. Read more
impl MaxEncodedLen for U512
impl MaxEncodedLen for U512
pub fn max_encoded_len() -> usize
pub fn max_encoded_len() -> usize
Upper bound, in bytes, of the maximum encoded size of this item.
pub fn mul_assign(&mut self, other: U512)
pub fn mul_assign(&mut self, other: U512)
Performs the *=
operation. Read more
pub fn mul_assign(&mut self, other: i16)
pub fn mul_assign(&mut self, other: i16)
Performs the *=
operation. Read more
pub fn mul_assign(&mut self, other: i32)
pub fn mul_assign(&mut self, other: i32)
Performs the *=
operation. Read more
pub fn mul_assign(&mut self, other: i64)
pub fn mul_assign(&mut self, other: i64)
Performs the *=
operation. Read more
pub fn mul_assign(&mut self, other: i8)
pub fn mul_assign(&mut self, other: i8)
Performs the *=
operation. Read more
pub fn mul_assign(&mut self, other: isize)
pub fn mul_assign(&mut self, other: isize)
Performs the *=
operation. Read more
pub fn mul_assign(&mut self, other: u16)
pub fn mul_assign(&mut self, other: u16)
Performs the *=
operation. Read more
pub fn mul_assign(&mut self, other: u32)
pub fn mul_assign(&mut self, other: u32)
Performs the *=
operation. Read more
pub fn mul_assign(&mut self, other: u64)
pub fn mul_assign(&mut self, other: u64)
Performs the *=
operation. Read more
pub fn mul_assign(&mut self, other: u8)
pub fn mul_assign(&mut self, other: u8)
Performs the *=
operation. Read more
pub fn mul_assign(&mut self, other: usize)
pub fn mul_assign(&mut self, other: usize)
Performs the *=
operation. Read more
impl PartialOrd<U512> for U512
impl PartialOrd<U512> for U512
pub fn partial_cmp(&self, other: &U512) -> Option<Ordering>
pub fn partial_cmp(&self, other: &U512) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
pub fn rem_assign(&mut self, other: T)
pub fn rem_assign(&mut self, other: T)
Performs the %=
operation. Read more
pub fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
pub fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
Serialize this value into the given Serde serializer. Read more
pub fn shl_assign(&mut self, shift: T)
pub fn shl_assign(&mut self, shift: T)
Performs the <<=
operation. Read more
pub fn shr_assign(&mut self, shift: T)
pub fn shr_assign(&mut self, shift: T)
Performs the >>=
operation. Read more
pub fn sub_assign(&mut self, other: U512)
pub fn sub_assign(&mut self, other: U512)
Performs the -=
operation. Read more
impl StructuralEq for U512
impl StructuralPartialEq for U512
Auto Trait Implementations
impl RefUnwindSafe for U512
impl UnwindSafe for U512
Blanket Implementations
pub fn as_byte_slice(&self) -> &[u8]
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
fn malloc_size_of(&self) -> usize
fn malloc_size_of(&self) -> usize
Method to launch a heapsize measurement with a fresh state. Read more
type Output = T
type Output = T
Should always be Self
The counterpart to unchecked_from
.
pub fn vzip(self) -> V
impl<'_, '_, T> EncodeLike<&'_ &'_ T> for T where
T: Encode,
impl<'_, T> EncodeLike<&'_ T> for T where
T: Encode,
impl<'_, T> EncodeLike<&'_ mut T> for T where
T: Encode,
impl<T> EncodeLike<Arc<T>> for T where
T: Encode,
impl<T> EncodeLike<Rc<T>> for T where
T: Encode,
impl<T> MaybeDebug for T where
T: Debug,
impl<T, Rhs> NumAssignOps<Rhs> for T where
T: AddAssign<Rhs> + SubAssign<Rhs> + MulAssign<Rhs> + DivAssign<Rhs> + RemAssign<Rhs>,