Type Alias ChannelId
pub type ChannelId = U256;
Expand description
Channel identity.
Aliased Type§
struct ChannelId(pub [u64; 4]);
Fields§
§0: [u64; 4]
Implementations
§impl U256
impl U256
pub fn full_mul(self, other: U256) -> U512
pub fn full_mul(self, other: U256) -> U512
Multiplies two 256-bit integers to produce full 512-bit integer. Overflow is not possible.
§impl U256
impl U256
§impl U256
impl U256
pub const MAX: U256
pub const MAX: U256
Maximum value.
pub fn from_str_radix(txt: &str, radix: u32) -> Result<U256, FromStrRadixErr>
pub fn from_str_radix(txt: &str, radix: u32) -> Result<U256, 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<U256, FromDecStrErr>
pub fn from_dec_str(value: &str) -> Result<U256, FromDecStrErr>
Convert from a decimal string.
pub 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().
pub 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().
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 const fn byte(&self, index: usize) -> u8
pub const fn byte(&self, index: usize) -> u8
Return specific byte. Byte 0 is the least significant value (ie~ little endian).
§Panics
Panics if index
exceeds the byte width of the number.
pub fn to_big_endian(&self) -> [u8; 32]
pub fn to_big_endian(&self) -> [u8; 32]
Convert to big-endian bytes.
pub fn write_as_big_endian(&self, bytes: &mut [u8])
pub fn write_as_big_endian(&self, bytes: &mut [u8])
Write to the slice in big-endian format.
pub fn to_little_endian(&self) -> [u8; 32]
pub fn to_little_endian(&self) -> [u8; 32]
Convert to little-endian bytes.
pub fn write_as_little_endian(&self, bytes: &mut [u8])
pub const fn zero() -> U256
pub const fn zero() -> U256
Zero (additive identity) of this type.
pub const fn one() -> U256
pub const fn one() -> U256
One (multiplicative identity) of this type.
pub const fn max_value() -> U256
pub const fn max_value() -> U256
The maximum value which can be inhabited by this type.
pub fn div_mod(self, other: U256) -> (U256, U256)
pub fn div_mod(self, other: U256) -> (U256, U256)
pub fn integer_sqrt(&self) -> U256
pub fn integer_sqrt(&self) -> U256
Compute the highest n
such that n * n <= self
.
pub fn pow(self, expon: U256) -> U256
pub fn pow(self, expon: U256) -> U256
Fast exponentiation by squaring https://en.wikipedia.org/wiki/Exponentiation_by_squaring
§Panics
Panics if the result overflows the type.
pub fn overflowing_pow(self, expon: U256) -> (U256, bool)
pub fn overflowing_pow(self, expon: U256) -> (U256, bool)
Fast exponentiation by squaring. Returns result and overflow flag.
pub fn checked_pow(self, expon: U256) -> Option<U256>
pub fn checked_pow(self, expon: U256) -> Option<U256>
Checked exponentiation. Returns None
if overflow occurred.
pub fn overflowing_add(self, other: U256) -> (U256, bool)
pub fn overflowing_add(self, other: U256) -> (U256, bool)
Addition which overflows and returns a flag if it does.
pub fn saturating_add(self, other: U256) -> U256
pub fn saturating_add(self, other: U256) -> U256
Addition which saturates at the maximum value (Self::MAX).
pub fn checked_add(self, other: U256) -> Option<U256>
pub fn checked_add(self, other: U256) -> Option<U256>
Checked addition. Returns None
if overflow occurred.
pub fn overflowing_sub(self, other: U256) -> (U256, bool)
pub fn overflowing_sub(self, other: U256) -> (U256, bool)
Subtraction which underflows and returns a flag if it does.
pub fn saturating_sub(self, other: U256) -> U256
pub fn saturating_sub(self, other: U256) -> U256
Subtraction which saturates at zero.
pub fn checked_sub(self, other: U256) -> Option<U256>
pub fn checked_sub(self, other: U256) -> Option<U256>
Checked subtraction. Returns None
if overflow occurred.
pub fn abs_diff(self, other: U256) -> U256
pub fn abs_diff(self, other: U256) -> U256
Computes the absolute difference between self and other.
pub fn overflowing_mul(self, other: U256) -> (U256, bool)
pub fn overflowing_mul(self, other: U256) -> (U256, bool)
Multiply with overflow, returning a flag if it does.
pub fn saturating_mul(self, other: U256) -> U256
pub fn saturating_mul(self, other: U256) -> U256
Multiplication which saturates at the maximum value..
pub fn checked_mul(self, other: U256) -> Option<U256>
pub fn checked_mul(self, other: U256) -> Option<U256>
Checked multiplication. Returns None
if overflow occurred.
pub fn checked_div(self, other: U256) -> Option<U256>
pub fn checked_div(self, other: U256) -> Option<U256>
Checked division. Returns None
if other == 0
.
pub fn checked_rem(self, other: U256) -> Option<U256>
pub fn checked_rem(self, other: U256) -> Option<U256>
Checked modulus. Returns None
if other == 0
.
pub fn overflowing_neg(self) -> (U256, bool)
pub fn overflowing_neg(self) -> (U256, bool)
Negation with overflow.
pub fn checked_neg(self) -> Option<U256>
pub fn checked_neg(self) -> Option<U256>
Checked negation. Returns None
unless self == 0
.
pub fn from_big_endian(slice: &[u8]) -> U256
pub fn from_big_endian(slice: &[u8]) -> U256
Converts from big endian representation bytes in memory.
pub fn from_little_endian(slice: &[u8]) -> U256
pub fn from_little_endian(slice: &[u8]) -> U256
Converts from little endian representation bytes in memory.
Trait Implementations
§impl AddAssign for U256
impl AddAssign for U256
§fn add_assign(&mut self, other: U256)
fn add_assign(&mut self, other: U256)
+=
operation. Read more§impl BitAndAssign for U256
impl BitAndAssign for U256
§fn bitand_assign(&mut self, rhs: U256)
fn bitand_assign(&mut self, rhs: U256)
&=
operation. Read more§impl BitOrAssign for U256
impl BitOrAssign for U256
§fn bitor_assign(&mut self, rhs: U256)
fn bitor_assign(&mut self, rhs: U256)
|=
operation. Read more§impl BitXorAssign for U256
impl BitXorAssign for U256
§fn bitxor_assign(&mut self, rhs: U256)
fn bitxor_assign(&mut self, rhs: U256)
^=
operation. Read more§impl CheckedAdd for U256
impl CheckedAdd for U256
§fn checked_add(&self, v: &U256) -> Option<U256>
fn checked_add(&self, v: &U256) -> Option<U256>
None
is
returned.§impl CheckedDiv for U256
impl CheckedDiv for U256
§fn checked_div(&self, v: &U256) -> Option<U256>
fn checked_div(&self, v: &U256) -> Option<U256>
None
is returned.§impl CheckedMul for U256
impl CheckedMul for U256
§fn checked_mul(&self, v: &U256) -> Option<U256>
fn checked_mul(&self, v: &U256) -> Option<U256>
None
is returned.§impl CheckedSub for U256
impl CheckedSub for U256
§fn checked_sub(&self, v: &U256) -> Option<U256>
fn checked_sub(&self, v: &U256) -> Option<U256>
None
is returned.§impl Decodable for U256
impl Decodable for U256
§impl Decode for U256
impl Decode for U256
§fn decode<I>(input: &mut I) -> Result<U256, Error>where
I: Input,
fn decode<I>(input: &mut I) -> Result<U256, Error>where
I: Input,
§fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>,
) -> Result<DecodeFinished, Error>where
I: Input,
fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>,
) -> Result<DecodeFinished, Error>where
I: Input,
§fn skip<I>(input: &mut I) -> Result<(), Error>where
I: Input,
fn skip<I>(input: &mut I) -> Result<(), Error>where
I: Input,
§fn encoded_fixed_size() -> Option<usize>
fn encoded_fixed_size() -> Option<usize>
§impl<'de> Deserialize<'de> for U256
impl<'de> Deserialize<'de> for U256
§fn deserialize<D>(
deserializer: D,
) -> Result<U256, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<U256, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
§impl<T> DivAssign<T> for U256where
T: Into<U256>,
impl<T> DivAssign<T> for U256where
T: Into<U256>,
§fn div_assign(&mut self, other: T)
fn div_assign(&mut self, other: T)
/=
operation. Read more§impl Encodable for U256
impl Encodable for U256
§fn rlp_append(&self, s: &mut RlpStream)
fn rlp_append(&self, s: &mut RlpStream)
§impl Encode for U256
impl Encode for U256
§fn using_encoded<R, F>(&self, f: F) -> R
fn using_encoded<R, F>(&self, f: F) -> R
§fn encode_to<T>(&self, dest: &mut T)where
T: Output + ?Sized,
fn encode_to<T>(&self, dest: &mut T)where
T: Output + ?Sized,
§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
§impl FromEntropy for U256
impl FromEntropy for U256
§fn from_entropy(input: &mut impl Input) -> Result<U256, Error>
fn from_entropy(input: &mut impl Input) -> Result<U256, Error>
Self
given a stream of random bytes on input
. May only fail if
input
has an error.§impl IntegerSquareRoot for U256
impl IntegerSquareRoot for U256
§fn integer_sqrt_checked(&self) -> Option<U256>
fn integer_sqrt_checked(&self) -> Option<U256>
None
if the number is negative (this can never
happen for unsigned types).§fn integer_sqrt(&self) -> Selfwhere
Self: Sized,
fn integer_sqrt(&self) -> Selfwhere
Self: Sized,
§impl MaxEncodedLen for U256
impl MaxEncodedLen for U256
§fn max_encoded_len() -> usize
fn max_encoded_len() -> usize
§impl MulAssign<i16> for U256
impl MulAssign<i16> for U256
§fn mul_assign(&mut self, other: i16)
fn mul_assign(&mut self, other: i16)
*=
operation. Read more§impl MulAssign<i32> for U256
impl MulAssign<i32> for U256
§fn mul_assign(&mut self, other: i32)
fn mul_assign(&mut self, other: i32)
*=
operation. Read more§impl MulAssign<i64> for U256
impl MulAssign<i64> for U256
§fn mul_assign(&mut self, other: i64)
fn mul_assign(&mut self, other: i64)
*=
operation. Read more§impl MulAssign<i8> for U256
impl MulAssign<i8> for U256
§fn mul_assign(&mut self, other: i8)
fn mul_assign(&mut self, other: i8)
*=
operation. Read more§impl MulAssign<isize> for U256
impl MulAssign<isize> for U256
§fn mul_assign(&mut self, other: isize)
fn mul_assign(&mut self, other: isize)
*=
operation. Read more§impl MulAssign<u16> for U256
impl MulAssign<u16> for U256
§fn mul_assign(&mut self, other: u16)
fn mul_assign(&mut self, other: u16)
*=
operation. Read more§impl MulAssign<u32> for U256
impl MulAssign<u32> for U256
§fn mul_assign(&mut self, other: u32)
fn mul_assign(&mut self, other: u32)
*=
operation. Read more§impl MulAssign<u64> for U256
impl MulAssign<u64> for U256
§fn mul_assign(&mut self, other: u64)
fn mul_assign(&mut self, other: u64)
*=
operation. Read more§impl MulAssign<u8> for U256
impl MulAssign<u8> for U256
§fn mul_assign(&mut self, other: u8)
fn mul_assign(&mut self, other: u8)
*=
operation. Read more§impl MulAssign<usize> for U256
impl MulAssign<usize> for U256
§fn mul_assign(&mut self, other: usize)
fn mul_assign(&mut self, other: usize)
*=
operation. Read more§impl MulAssign for U256
impl MulAssign for U256
§fn mul_assign(&mut self, other: U256)
fn mul_assign(&mut self, other: U256)
*=
operation. Read more§impl Num for U256
impl Num for U256
type FromStrRadixErr = FromStrRadixErr
§fn from_str_radix(
txt: &str,
radix: u32,
) -> Result<U256, <U256 as Num>::FromStrRadixErr>
fn from_str_radix( txt: &str, radix: u32, ) -> Result<U256, <U256 as Num>::FromStrRadixErr>
2..=36
). Read more§impl Ord for U256
impl Ord for U256
§impl PartialOrd for U256
impl PartialOrd for U256
§impl<T> RemAssign<T> for U256
impl<T> RemAssign<T> for U256
§fn rem_assign(&mut self, other: T)
fn rem_assign(&mut self, other: T)
%=
operation. Read more§impl Serialize for U256
impl Serialize for U256
§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
§impl<T> ShlAssign<T> for U256where
T: Into<U256>,
impl<T> ShlAssign<T> for U256where
T: Into<U256>,
§fn shl_assign(&mut self, shift: T)
fn shl_assign(&mut self, shift: T)
<<=
operation. Read more§impl<T> ShrAssign<T> for U256where
T: Into<U256>,
impl<T> ShrAssign<T> for U256where
T: Into<U256>,
§fn shr_assign(&mut self, shift: T)
fn shr_assign(&mut self, shift: T)
>>=
operation. Read more§impl SubAssign for U256
impl SubAssign for U256
§fn sub_assign(&mut self, other: U256)
fn sub_assign(&mut self, other: U256)
-=
operation. Read more