Struct H160
#[repr(C)]pub struct H160(pub [u8; 20]);Expand description
Fixed-size uninterpreted hash type with 20 bytes (160 bits) size.
Tuple Fields§
§0: [u8; 20]Implementations§
§impl H160
impl H160
pub const fn repeat_byte(byte: u8) -> H160
pub const fn repeat_byte(byte: u8) -> H160
Returns a new fixed hash where all bits are set to the given byte.
pub fn as_bytes_mut(&mut self) -> &mut [u8] ⓘ
pub fn as_bytes_mut(&mut self) -> &mut [u8] ⓘ
Extracts a mutable byte slice containing the entire fixed hash.
pub const fn as_fixed_bytes(&self) -> &[u8; 20]
pub const fn as_fixed_bytes(&self) -> &[u8; 20]
Extracts a reference to the byte array containing the entire fixed hash.
pub fn as_fixed_bytes_mut(&mut self) -> &mut [u8; 20]
pub fn as_fixed_bytes_mut(&mut self) -> &mut [u8; 20]
Extracts a reference to the byte array containing the entire fixed hash.
pub const fn to_fixed_bytes(self) -> [u8; 20]
pub const fn to_fixed_bytes(self) -> [u8; 20]
Returns the inner bytes array.
pub fn as_mut_ptr(&mut self) -> *mut u8
pub fn as_mut_ptr(&mut self) -> *mut u8
Returns a mutable raw pointer to the value.
pub fn assign_from_slice(&mut self, src: &[u8])
pub fn assign_from_slice(&mut self, src: &[u8])
pub fn from_slice(src: &[u8]) -> H160
pub fn from_slice(src: &[u8]) -> H160
§impl H160
Utilities using the byteorder crate.
impl H160
Utilities using the byteorder crate.
pub fn to_low_u64_be(&self) -> u64
pub fn to_low_u64_be(&self) -> u64
Returns the lowest 8 bytes interpreted as big-endian.
§Note
For hash type with less than 8 bytes the missing bytes are interpreted as being zero.
pub fn to_low_u64_le(&self) -> u64
pub fn to_low_u64_le(&self) -> u64
Returns the lowest 8 bytes interpreted as little-endian.
§Note
For hash type with less than 8 bytes the missing bytes are interpreted as being zero.
pub fn to_low_u64_ne(&self) -> u64
pub fn to_low_u64_ne(&self) -> u64
Returns the lowest 8 bytes interpreted as native-endian.
§Note
For hash type with less than 8 bytes the missing bytes are interpreted as being zero.
pub fn from_low_u64_be(val: u64) -> H160
pub fn from_low_u64_be(val: u64) -> H160
Creates a new hash type from the given u64 value.
§Note
- The given
u64value is interpreted as big endian. - Ignores the most significant bits of the given value if the hash type has less than 8 bytes.
pub fn from_low_u64_le(val: u64) -> H160
pub fn from_low_u64_le(val: u64) -> H160
Creates a new hash type from the given u64 value.
§Note
- The given
u64value is interpreted as little endian. - Ignores the most significant bits of the given value if the hash type has less than 8 bytes.
pub fn from_low_u64_ne(val: u64) -> H160
pub fn from_low_u64_ne(val: u64) -> H160
Creates a new hash type from the given u64 value.
§Note
- The given
u64value is interpreted as native endian. - Ignores the most significant bits of the given value if the hash type has less than 8 bytes.
§impl H160
Utilities using the rand crate.
impl H160
Utilities using the rand crate.
pub fn randomize_using<R>(&mut self, rng: &mut R)
pub fn randomize_using<R>(&mut self, rng: &mut R)
Assign self to a cryptographically random value using the
given random number generator.
pub fn randomize(&mut self)
pub fn randomize(&mut self)
Assign self to a cryptographically random value.
pub fn random_using<R>(rng: &mut R) -> H160
pub fn random_using<R>(rng: &mut R) -> H160
Create a new hash with cryptographically random content using the given random number generator.
Trait Implementations§
§impl<'r> BitAndAssign<&'r H160> for H160
impl<'r> BitAndAssign<&'r H160> for H160
§fn bitand_assign(&mut self, rhs: &'r H160)
fn bitand_assign(&mut self, rhs: &'r H160)
&= operation. Read more§impl BitAndAssign for H160
impl BitAndAssign for H160
§fn bitand_assign(&mut self, rhs: H160)
fn bitand_assign(&mut self, rhs: H160)
&= operation. Read more§impl<'r> BitOrAssign<&'r H160> for H160
impl<'r> BitOrAssign<&'r H160> for H160
§fn bitor_assign(&mut self, rhs: &'r H160)
fn bitor_assign(&mut self, rhs: &'r H160)
|= operation. Read more§impl BitOrAssign for H160
impl BitOrAssign for H160
§fn bitor_assign(&mut self, rhs: H160)
fn bitor_assign(&mut self, rhs: H160)
|= operation. Read more§impl<'r> BitXorAssign<&'r H160> for H160
impl<'r> BitXorAssign<&'r H160> for H160
§fn bitxor_assign(&mut self, rhs: &'r H160)
fn bitxor_assign(&mut self, rhs: &'r H160)
^= operation. Read more§impl BitXorAssign for H160
impl BitXorAssign for H160
§fn bitxor_assign(&mut self, rhs: H160)
fn bitxor_assign(&mut self, rhs: H160)
^= operation. Read more§impl Decode for H160
impl Decode for H160
§fn decode<I>(input: &mut I) -> Result<H160, Error>where
I: Input,
fn decode<I>(input: &mut I) -> Result<H160, 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 H160
impl<'de> Deserialize<'de> for H160
§fn deserialize<D>(
deserializer: D,
) -> Result<H160, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<H160, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
§impl Encode for H160
impl Encode for H160
§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<I> Index<I> for H160where
I: SliceIndex<[u8]>,
impl<I> Index<I> for H160where
I: SliceIndex<[u8]>,
§impl MaxEncodedLen for H160
impl MaxEncodedLen for H160
§fn max_encoded_len() -> usize
fn max_encoded_len() -> usize
§impl Ord for H160
impl Ord for H160
§impl PartialOrd for H160
impl PartialOrd for H160
§impl Serialize for H160
impl Serialize for H160
§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 SolDecode for H160
impl SolDecode for H160
§impl SolEncode<'_> for H160
impl SolEncode<'_> for H160
§fn to_sol_type(&self) -> <H160 as SolEncode<'_>>::SolType
fn to_sol_type(&self) -> <H160 as SolEncode<'_>>::SolType
Self to Self::SolType via either a borrow (if possible), or
a possibly expensive conversion otherwise.§const SOL_NAME: &'static str = <<Self::SolType as SolTypeEncode>::AlloyType as AlloySolType>::SOL_NAME
const SOL_NAME: &'static str = <<Self::SolType as SolTypeEncode>::AlloyType as AlloySolType>::SOL_NAME
§impl SolTopicEncode for H160
impl SolTopicEncode for H160
§fn encode_topic<H>(&self, _: H) -> [u8; 32]
fn encode_topic<H>(&self, _: H) -> [u8; 32]
§fn topic_preimage(&self, buffer: &mut Vec<u8>)
fn topic_preimage(&self, buffer: &mut Vec<u8>)
§fn default_topic_preimage(buffer: &mut Vec<u8>)
fn default_topic_preimage(buffer: &mut Vec<u8>)
Self::topic_preimage equivalent for the default value representation of this
type.§fn topic_preimage_size(&self) -> usize
fn topic_preimage_size(&self) -> usize
Self::topic_preimage encoding of this type.§fn default_topic_preimage_size() -> usize
fn default_topic_preimage_size() -> usize
Self::topic_preimage_size equivalent for the default value representation of
this type.§impl SolTypeDecode for H160
impl SolTypeDecode for H160
§fn detokenize(
token: <<H160 as SolTypeDecode>::AlloyType as SolType>::Token<'_>,
) -> Result<H160, Error>
fn detokenize( token: <<H160 as SolTypeDecode>::AlloyType as SolType>::Token<'_>, ) -> Result<H160, Error>
§impl SolTypeEncode for H160
impl SolTypeEncode for H160
§const DEFAULT_VALUE: <H160 as SolTokenType>::DefaultType = {transmute(0x0000000000000001): <ink_primitives::H160 as ink_primitives::sol::types::SolTokenType>::DefaultType}
const DEFAULT_VALUE: <H160 as SolTokenType>::DefaultType = {transmute(0x0000000000000001): <ink_primitives::H160 as ink_primitives::sol::types::SolTokenType>::DefaultType}
§fn tokenize(&self) -> <H160 as SolTokenType>::TokenType<'_>
fn tokenize(&self) -> <H160 as SolTokenType>::TokenType<'_>
Self::AlloyType token.§impl StorageLayout for H160
impl StorageLayout for H160
impl AccountIdGuard for H160
impl Copy for H160
impl DecodeWithMemTracking for H160
impl EncodeLike for H160
impl Eq for H160
Auto Trait Implementations§
impl Freeze for H160
impl RefUnwindSafe for H160
impl Send for H160
impl Sync for H160
impl Unpin for H160
impl UnwindSafe for H160
Blanket Implementations§
§impl<T> AbiDecodeWith<Ink> for Twhere
T: Decode,
impl<T> AbiDecodeWith<Ink> for Twhere
T: Decode,
§fn decode_with(buffer: &[u8]) -> Result<T, <T as AbiDecodeWith<Ink>>::Error>
fn decode_with(buffer: &[u8]) -> Result<T, <T as AbiDecodeWith<Ink>>::Error>
§impl<T> AbiDecodeWith<Sol> for Twhere
T: SolDecode,
impl<T> AbiDecodeWith<Sol> for Twhere
T: SolDecode,
§fn decode_with(buffer: &[u8]) -> Result<T, <T as AbiDecodeWith<Sol>>::Error>
fn decode_with(buffer: &[u8]) -> Result<T, <T as AbiDecodeWith<Sol>>::Error>
§impl<T> AbiEncodeWith<Ink> for Twhere
T: Encode,
impl<T> AbiEncodeWith<Ink> for Twhere
T: Encode,
§fn encode_with(&self) -> Vec<u8> ⓘ
fn encode_with(&self) -> Vec<u8> ⓘ
§fn encode_to_slice(&self, buffer: &mut [u8]) -> usize
fn encode_to_slice(&self, buffer: &mut [u8]) -> usize
§fn encode_to_vec(&self, buffer: &mut Vec<u8>)
fn encode_to_vec(&self, buffer: &mut Vec<u8>)
§impl<T> AbiEncodeWith<Sol> for Twhere
T: for<'a> SolEncode<'a>,
impl<T> AbiEncodeWith<Sol> for Twhere
T: for<'a> SolEncode<'a>,
§fn encode_with(&self) -> Vec<u8> ⓘ
fn encode_with(&self) -> Vec<u8> ⓘ
§fn encode_to_slice(&self, buffer: &mut [u8]) -> usize
fn encode_to_slice(&self, buffer: &mut [u8]) -> usize
§fn encode_to_vec(&self, buffer: &mut Vec<u8>)
fn encode_to_vec(&self, buffer: &mut Vec<u8>)
§impl<T, U> AsByteSlice<T> for U
impl<T, U> AsByteSlice<T> for U
fn as_byte_slice(&self) -> &[u8] ⓘ
§impl<T, U> AsMutByteSlice<T> for U
impl<T, U> AsMutByteSlice<T> for U
fn as_mut_byte_slice(&mut self) -> &mut [u8] ⓘ
§impl<U> AsMutSliceOf for U
impl<U> AsMutSliceOf for U
fn as_mut_slice_of<T>(&mut self) -> Result<&mut [T], Error>where
T: FromByteSlice,
§impl<U> AsSliceOf for U
impl<U> AsSliceOf for U
fn as_slice_of<T>(&self) -> Result<&[T], Error>where
T: FromByteSlice,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
§impl<T> Clear for T
impl<T> Clear for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<T> DecodeAll for Twhere
T: Decode,
impl<T> DecodeAll for Twhere
T: Decode,
§fn decode_all(input: &mut &[u8]) -> Result<T, Error>
fn decode_all(input: &mut &[u8]) -> Result<T, Error>
Self and consume all of the given input data. Read more§impl<E> DecodeConstructorError<Ink> for Ewhere
E: Decode,
impl<E> DecodeConstructorError<Ink> for Ewhere
E: Decode,
§fn decode_error_output(buffer: &[u8]) -> ConstructorError<E>
fn decode_error_output(buffer: &[u8]) -> ConstructorError<E>
§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere
T: Decode,
§impl<R> DecodeMessageResult<Sol> for Rwhere
R: SolResultDecode,
impl<R> DecodeMessageResult<Sol> for Rwhere
R: SolResultDecode,
§impl<T> DecodeWithMemLimit for Twhere
T: DecodeWithMemTracking,
impl<T> DecodeWithMemLimit for Twhere
T: DecodeWithMemTracking,
§impl<T> DefensiveMax<T> for Twhere
T: PartialOrd,
impl<T> DefensiveMax<T> for Twhere
T: PartialOrd,
§fn defensive_max(self, other: T) -> T
fn defensive_max(self, other: T) -> T
§fn defensive_strict_max(self, other: T) -> T
fn defensive_strict_max(self, other: T) -> T
§impl<T> DefensiveMin<T> for Twhere
T: PartialOrd,
impl<T> DefensiveMin<T> for Twhere
T: PartialOrd,
§fn defensive_min(self, other: T) -> T
fn defensive_min(self, other: T) -> T
§fn defensive_strict_min(self, other: T) -> T
fn defensive_strict_min(self, other: T) -> T
§impl<T, U> DefensiveTruncateInto<U> for Twhere
U: DefensiveTruncateFrom<T>,
impl<T, U> DefensiveTruncateInto<U> for Twhere
U: DefensiveTruncateFrom<T>,
§fn defensive_truncate_into(self) -> U
fn defensive_truncate_into(self) -> U
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Hashable for Twhere
T: Codec,
impl<T> Hashable for Twhere
T: Codec,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
fn into_tuple(self) -> Dest
§impl<T> IsType<T> for T
impl<T> IsType<T> for T
§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
§impl<T> KeyedVec for Twhere
T: Codec,
impl<T> KeyedVec for Twhere
T: Codec,
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
T. Read more§impl<T> SolResultDecode for Twhere
T: SolDecode,
impl<T> SolResultDecode for Twhere
T: SolDecode,
§impl<'a, T> SolResultEncode<'a> for Twhere
T: SolEncode<'a>,
impl<'a, T> SolResultEncode<'a> for Twhere
T: SolEncode<'a>,
§impl<P> Storable for Pwhere
P: Codec,
impl<P> Storable for Pwhere
P: Codec,
§fn encode<T>(&self, dest: &mut T)where
T: Output + ?Sized,
fn encode<T>(&self, dest: &mut T)where
T: Output + ?Sized,
§fn decode<I>(input: &mut I) -> Result<P, Error>where
I: Input,
fn decode<I>(input: &mut I) -> Result<P, Error>where
I: Input,
§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
§impl<P, Key> StorableHint<Key> for Pwhere
P: Packed,
Key: StorageKey,
impl<P, Key> StorableHint<Key> for Pwhere
P: Packed,
Key: StorageKey,
§type PreferredKey = AutoKey
type PreferredKey = AutoKey
§impl<P> StorageKey for Pwhere
P: Packed,
impl<P> StorageKey for Pwhere
P: Packed,
§impl<T> ToHex for T
impl<T> ToHex for T
§fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
ToHexExt insteadself into the result.
Lower case letters are used (e.g. f9b4ca).§fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
ToHexExt insteadself into the result.
Upper case letters are used (e.g. F9B4CA).Source§impl<T> ToHex for T
impl<T> ToHex for T
Source§fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
self into the result. Lower case
letters are used (e.g. f9b4ca)Source§fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
self into the result. Upper case
letters are used (e.g. F9B4CA)§impl<T> ToHexExt for T
impl<T> ToHexExt for T
§fn encode_hex(&self) -> String
fn encode_hex(&self) -> String
self into the result.
Lower case letters are used (e.g. f9b4ca).§fn encode_hex_upper(&self) -> String
fn encode_hex_upper(&self) -> String
self into the result.
Upper case letters are used (e.g. F9B4CA).§fn encode_hex_with_prefix(&self) -> String
fn encode_hex_with_prefix(&self) -> String
self into the result with prefix 0x.
Lower case letters are used (e.g. 0xf9b4ca).§fn encode_hex_upper_with_prefix(&self) -> String
fn encode_hex_upper_with_prefix(&self) -> String
self into the result with prefix 0X.
Upper case letters are used (e.g. 0xF9B4CA).§impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
type Error = <U as TryFromKey<T>>::Error
fn try_into_key(self) -> Result<U, <U as TryFromKey<T>>::Error>
§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from.§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T.