Trait scale_info::prelude::hash::Hash

1.0.0 · source ·
pub trait Hash {
    fn hash<H>(&self, state: &mut H)
    where
        H: Hasher
; fn hash_slice<H>(data: &[Self], state: &mut H)
    where
        H: Hasher,
        Self: Sized
, { ... } }
Expand description

A hashable type.

Types implementing Hash are able to be hashed with an instance of Hasher.

Implementing Hash

You can derive Hash with #[derive(Hash)] if all fields implement Hash. The resulting hash will be the combination of the values from calling hash on each field.

#[derive(Hash)]
struct Rustacean {
    name: String,
    country: String,
}

If you need more control over how a value is hashed, you can of course implement the Hash trait yourself:

use std::hash::{Hash, Hasher};

struct Person {
    id: u32,
    name: String,
    phone: u64,
}

impl Hash for Person {
    fn hash<H: Hasher>(&self, state: &mut H) {
        self.id.hash(state);
        self.phone.hash(state);
    }
}

Hash and Eq

When implementing both Hash and Eq, it is important that the following property holds:

k1 == k2 -> hash(k1) == hash(k2)

In other words, if two keys are equal, their hashes must also be equal. HashMap and HashSet both rely on this behavior.

Thankfully, you won’t need to worry about upholding this property when deriving both Eq and Hash with #[derive(PartialEq, Eq, Hash)].

Prefix collisions

Implementations of hash should ensure that the data they pass to the Hasher are prefix-free. That is, unequal values should cause two different sequences of values to be written, and neither of the two sequences should be a prefix of the other.

For example, the standard implementation of Hash for &str passes an extra 0xFF byte to the Hasher so that the values ("ab", "c") and ("a", "bc") hash differently.

Portability

Due to differences in endianness and type sizes, data fed by Hash to a Hasher should not be considered portable across platforms. Additionally the data passed by most standard library types should not be considered stable between compiler versions.

This means tests shouldn’t probe hard-coded hash values or data fed to a Hasher and instead should check consistency with Eq.

Serialization formats intended to be portable between platforms or compiler versions should either avoid encoding hashes or only rely on Hash and Hasher implementations that provide additional guarantees.

Required Methods§

Feeds this value into the given Hasher.

Examples
use std::collections::hash_map::DefaultHasher;
use std::hash::{Hash, Hasher};

let mut hasher = DefaultHasher::new();
7920.hash(&mut hasher);
println!("Hash is {:x}!", hasher.finish());

Provided Methods§

Feeds a slice of this type into the given Hasher.

This method is meant as a convenience, but its implementation is also explicitly left unspecified. It isn’t guaranteed to be equivalent to repeated calls of hash and implementations of Hash should keep that in mind and call hash themselves if the slice isn’t treated as a whole unit in the PartialEq implementation.

For example, a VecDeque implementation might naïvely call as_slices and then hash_slice on each slice, but this is wrong since the two slices can change with a call to make_contiguous without affecting the PartialEq result. Since these slices aren’t treated as singular units, and instead part of a larger deque, this method cannot be used.

Examples
use std::collections::hash_map::DefaultHasher;
use std::hash::{Hash, Hasher};

let mut hasher = DefaultHasher::new();
let numbers = [6, 28, 496, 8128];
Hash::hash_slice(&numbers, &mut hasher);
println!("Hash is {:x}!", hasher.finish());

Implementors§

This trait is implemented for function pointers with up to twelve arguments.

This trait is implemented for function pointers with up to twelve arguments.

This trait is implemented for function pointers with up to twelve arguments.

This trait is implemented for function pointers with up to twelve arguments.

This trait is implemented for function pointers with up to twelve arguments.

This trait is implemented for function pointers with up to twelve arguments.

This trait is implemented for function pointers with up to twelve arguments.

This trait is implemented for function pointers with up to twelve arguments.

This trait is implemented for function pointers with up to twelve arguments.

This trait is implemented for function pointers with up to twelve arguments.

This trait is implemented for tuples up to twelve items long.

The hash of a vector is the same as that of the corresponding slice, as required by the core::borrow::Borrow implementation.

#![feature(build_hasher_simple_hash_one)]
use std::hash::BuildHasher;

let b = std::collections::hash_map::RandomState::new();
let v: Vec<u8> = vec![0xa8, 0x3c, 0x09];
let s: &[u8] = &[0xa8, 0x3c, 0x09];
assert_eq!(b.hash_one(v), b.hash_one(s));

The hash of an array is the same as that of the corresponding slice, as required by the Borrow implementation.

#![feature(build_hasher_simple_hash_one)]
use std::hash::BuildHasher;

let b = std::collections::hash_map::RandomState::new();
let a: [u8; 3] = [0xa8, 0x3c, 0x09];
let s: &[u8] = &[0xa8, 0x3c, 0x09];
assert_eq!(b.hash_one(a), b.hash_one(s));

impl Hash for Error

impl Hash for Match

impl Hash for TaskId

impl Hash for Path

impl Hash for PathBuf

impl<T, U> Hash for Cow<'_, T, U>where
    T: Hash + Beef + ?Sized,
    U: Capacity,

impl Hash for Payload

impl Hash for Public

impl Hash for Signature

impl<L, R> Hash for BiBTreeMap<L, R>where
    L: Hash,
    R: Hash,

impl<L: Hash, R: Hash> Hash for Overwritten<L, R>

impl Hash for Hash

impl<T: Hash, const L: usize, const U: usize> Hash for BoundedVec<T, L, U>

impl Hash for BStr

impl Hash for BString

impl Hash for BigEndian

impl Hash for Triple

impl Hash for Arch

impl Hash for Vendor

impl Hash for Os

impl Hash for Family

impl Hash for Env

impl Hash for Panic

impl Hash for HasAtomic

impl Hash for Families

impl Hash for HasAtomics

impl Hash for Endian

impl Hash for TargetInfo

impl<Tz: TimeZone> Hash for Date<Tz>

impl<Tz: TimeZone> Hash for DateTime<Tz>

impl Hash for NaiveDate

impl Hash for NaiveTime

impl Hash for FixedOffset

impl<T: Hash> Hash for LocalResult<T>

impl Hash for Weekday

impl Hash for Month

impl Hash for Months

impl<const S: usize> Hash for Cid<S>

impl Hash for Version

impl Hash for ValueHint

impl<'s> Hash for ParsedArg<'s>

impl Hash for Duration

impl Hash for Instant

impl Hash for ErrorKind

impl<'a> Hash for &'a TemplateParam

impl Hash for Error

impl Hash for AtomicRmwOp

impl Hash for IntCC

impl Hash for FloatCC

impl Hash for Block

impl Hash for Value

impl Hash for Inst

impl Hash for StackSlot

impl Hash for GlobalValue

impl Hash for Constant

impl Hash for Immediate

impl Hash for JumpTable

impl Hash for FuncRef

impl Hash for SigRef

impl Hash for Heap

impl Hash for Table

impl Hash for AnyEntity

impl Hash for Signature

impl Hash for AbiParam

impl Hash for Imm64

impl Hash for Uimm64

impl Hash for Uimm32

impl Hash for V128Imm

impl Hash for Offset32

impl Hash for Ieee32

impl Hash for Ieee64

impl Hash for Opcode

impl Hash for LibCall

impl Hash for Endianness

impl Hash for MemFlags

impl Hash for TrapCode

impl Hash for Type

impl Hash for ValueLabel

impl Hash for CallConv

impl Hash for Loop

impl Hash for Builder

impl<'a> Hash for PredicateView<'a>

impl Hash for Template

impl Hash for Descriptor

impl Hash for Detail

impl Hash for Flags

impl Hash for OptLevel

impl Hash for TlsModel

impl<T: Hash + ReservedValue> Hash for PackedOption<T>

impl<K, V: Hash> Hash for PrimaryMap<K, V>where
    K: EntityRef + Hash,

impl<T: Hash> Hash for CachePadded<T>

impl Hash for Limb

impl<const LIMBS: usize> Hash for UInt<LIMBS>

impl Hash for Scalar

impl<L: Hash, R: Hash> Hash for Either<L, R>

impl<T, N: Hash> Hash for BitFlags<T, N>

impl Hash for WriteStyle

impl Hash for Errno

impl<F: Hash> Hash for Unwrapped<F>

impl<F: Hash> Hash for Wrapping<F>

impl<Frac> Hash for FixedU8<Frac>

impl<Frac> Hash for FixedU16<Frac>

impl<Frac> Hash for FixedU32<Frac>

impl<Frac> Hash for FixedU64<Frac>

impl<Frac> Hash for FixedU128<Frac>

impl<Frac> Hash for FixedI8<Frac>

impl<Frac> Hash for FixedI16<Frac>

impl<Frac> Hash for FixedI32<Frac>

impl<Frac> Hash for FixedI64<Frac>

impl<Frac> Hash for FixedI128<Frac>

impl Hash for F128Bits

impl Hash for FixedBitSet

impl Hash for FsStats

impl<T: Hash> Hash for AssertAsync<T>

impl Hash for PollNext

impl<T: Hash> Hash for AllowStdIo<T>

impl<T: Hash, N> Hash for GenericArray<T, N>where
    N: ArrayLength<T>,

impl Hash for Format

impl Hash for Encoding

impl Hash for Register

impl<T: Hash> Hash for DebugAbbrevOffset<T>

impl<T: Hash> Hash for DebugInfoOffset<T>

impl<T: Hash> Hash for LocationListsOffset<T>

impl<T: Hash> Hash for DebugMacinfoOffset<T>

impl<T: Hash> Hash for DebugMacroOffset<T>

impl<T: Hash> Hash for RawRangeListsOffset<T>

impl<T: Hash> Hash for RangeListsOffset<T>

impl<T: Hash> Hash for DebugTypesOffset<T>

impl<T: Hash> Hash for DebugFrameOffset<T>

impl<T: Hash> Hash for EhFrameOffset<T>

impl<T: Hash> Hash for UnitSectionOffset<T>

impl Hash for SectionId

impl Hash for DwoId

impl Hash for DwSect

impl Hash for DwSectV2

impl Hash for DwUt

impl Hash for DwCfa

impl Hash for DwChildren

impl Hash for DwTag

impl Hash for DwAt

impl Hash for DwForm

impl Hash for DwAte

impl Hash for DwLle

impl Hash for DwDs

impl Hash for DwEnd

impl Hash for DwAccess

impl Hash for DwVis

impl Hash for DwLang

impl Hash for DwAddr

impl Hash for DwId

impl Hash for DwCc

impl Hash for DwInl

impl Hash for DwOrd

impl Hash for DwDsc

impl Hash for DwIdx

impl Hash for DwDefaulted

impl Hash for DwLns

impl Hash for DwLne

impl Hash for DwLnct

impl Hash for DwMacro

impl Hash for DwRle

impl Hash for DwOp

impl Hash for DwEhPe

impl Hash for BigEndian

impl<'input, Endian> Hash for EndianSlice<'input, Endian>where
    Endian: Endianity + Hash,

impl<R: Hash + Reader> Hash for LocationListEntry<R>

impl<R: Hash + Reader> Hash for Expression<R>

impl Hash for Range

impl<T: Hash> Hash for UnitOffset<T>

impl Hash for CieId

impl Hash for LineString

impl Hash for DirectoryId

impl Hash for FileId

impl Hash for Location

impl Hash for Expression

impl Hash for RangeListId

impl Hash for RangeList

impl Hash for Range

impl Hash for StringId

impl Hash for UnitId

impl Hash for UnitEntryId

impl Hash for Address

impl Hash for Reference

impl Hash for Glob

impl Hash for StreamId

impl Hash for HeaderName

impl Hash for HeaderValue

impl Hash for Method

impl Hash for StatusCode

impl Hash for Authority

impl Hash for Scheme

impl Hash for Uri

impl Hash for Version

impl Hash for HttpDate

impl Hash for Duration

impl Hash for Name

impl Hash for IfEvent

impl Hash for IpNetwork

impl Hash for Ipv4Network

impl Hash for Ipv6Network

impl Hash for IpAddrRange

impl Hash for IpNet

impl Hash for Ipv4Net

impl Hash for Ipv6Net

impl Hash for IpSubnets

impl Hash for Ipv4Subnets

impl Hash for Ipv6Subnets

impl<A: Hash, B: Hash> Hash for EitherOrBoth<A, B>

impl Hash for Origin

impl Hash for Port

impl Hash for Host

impl<'a> Hash for SubscriptionId<'a>

impl<'a> Hash for Id<'a>

impl Hash for group

impl Hash for utimbuf

impl Hash for timeval

impl Hash for timespec

impl Hash for rlimit

impl Hash for rusage

impl Hash for ipv6_mreq

impl Hash for hostent

impl Hash for iovec

impl Hash for pollfd

impl Hash for winsize

impl Hash for linger

impl Hash for sigval

impl Hash for itimerval

impl Hash for tms

impl Hash for servent

impl Hash for protoent

impl Hash for in_addr

impl Hash for ip_mreq

impl Hash for ip_mreqn

impl Hash for sockaddr

impl Hash for sockaddr_in

impl Hash for addrinfo

impl Hash for sockaddr_ll

impl Hash for fd_set

impl Hash for tm

impl Hash for sched_param

impl Hash for Dl_info

impl Hash for lconv

impl Hash for in_pktinfo

impl Hash for ifaddrs

impl Hash for in6_rtmsg

impl Hash for arpreq

impl Hash for arpreq_old

impl Hash for arphdr

impl Hash for mmsghdr

impl Hash for epoll_event

impl Hash for sockaddr_un

impl Hash for utsname

impl Hash for sigevent

impl Hash for rlimit64

impl Hash for glob_t

impl Hash for passwd

impl Hash for spwd

impl Hash for dqblk

impl Hash for itimerspec

impl Hash for fsid_t

impl Hash for packet_mreq

impl Hash for cpu_set_t

impl Hash for msginfo

impl Hash for sembuf

impl Hash for input_event

impl Hash for input_id

impl Hash for input_mask

impl Hash for ff_replay

impl Hash for ff_trigger

impl Hash for ff_envelope

impl Hash for ff_effect

impl Hash for Elf32_Ehdr

impl Hash for Elf64_Ehdr

impl Hash for Elf32_Sym

impl Hash for Elf64_Sym

impl Hash for Elf32_Phdr

impl Hash for Elf64_Phdr

impl Hash for Elf32_Shdr

impl Hash for Elf64_Shdr

impl Hash for ucred

impl Hash for mntent

impl Hash for genlmsghdr

impl Hash for in6_pktinfo

impl Hash for sockaddr_vm

impl Hash for regmatch_t

impl Hash for can_filter

impl Hash for sock_filter

impl Hash for sock_fprog

impl Hash for nlmsghdr

impl Hash for nlmsgerr

impl Hash for nlattr

impl Hash for in6_ifreq

impl Hash for sockaddr_nl

impl Hash for dirent

impl Hash for dirent64

impl Hash for af_alg_iv

impl Hash for mq_attr

impl Hash for statx

impl Hash for aiocb

impl Hash for __timeval

impl Hash for glob64_t

impl Hash for msghdr

impl Hash for cmsghdr

impl Hash for termios

impl Hash for mallinfo

impl Hash for mallinfo2

impl Hash for nl_pktinfo

impl Hash for nl_mmap_req

impl Hash for nl_mmap_hdr

impl Hash for rtentry

impl Hash for timex

impl Hash for ntptimeval

impl Hash for regex_t

impl Hash for Elf64_Chdr

impl Hash for Elf32_Chdr

impl Hash for seminfo

impl Hash for utmpx

impl Hash for sigset_t

impl Hash for sysinfo

impl Hash for msqid_ds

impl Hash for semid_ds

impl Hash for sigaction

impl Hash for statfs

impl Hash for flock

impl Hash for flock64

impl Hash for siginfo_t

impl Hash for stack_t

impl Hash for stat

impl Hash for stat64

impl Hash for statfs64

impl Hash for statvfs64

impl Hash for user

impl Hash for mcontext_t

impl Hash for ipc_perm

impl Hash for shmid_ds

impl Hash for ucontext_t

impl Hash for statvfs

impl Hash for clone_args

impl Hash for sem_t

impl Hash for termios2

impl Hash for open_how

impl Hash for in6_addr

impl Hash for ProbeId

impl Hash for PeerId

impl Hash for Endpoint

impl Hash for ListenerId

impl Hash for FloodsubRpc

impl Hash for Topic

impl Hash for Inclusion

impl Hash for Churn

impl Hash for Penalty

impl Hash for TopicHash

impl Hash for MessageId

impl<T> Hash for Key<T>

impl Hash for Key

impl Hash for QueryId

impl Hash for CircuitId

impl Hash for RequestId

impl Hash for Namespace

impl Hash for Cookie

impl Hash for RequestId

impl Hash for Data

impl<K: Hash + Eq, V: Hash, S: BuildHasher> Hash for LinkedHashMap<K, V, S>

impl<T, S> Hash for LinkedHashSet<T, S>where
    T: Eq + Hash,
    S: BuildHasher,

impl<Storage: Hash> Hash for __BindgenBitfieldUnit<Storage>

impl<T> Hash for __BindgenUnionField<T>

impl<'k> Hash for Key<'k>

impl Hash for Level

impl Hash for LevelFilter

impl<'a> Hash for Metadata<'a>

impl<'a> Hash for MetadataBuilder<'a>

impl Hash for FileSeal

impl Hash for Advice

impl Hash for TDEFLFlush

impl Hash for TDEFLStatus

impl Hash for TINFLStatus

impl Hash for MZFlush

impl Hash for MZStatus

impl Hash for MZError

impl Hash for DataFormat

impl Hash for Token

impl Hash for Multiaddr

impl<const S: usize> Hash for Multihash<S>

impl<T: Hash + Scalar> Hash for X<T>

impl<T: Hash + Scalar> Hash for XY<T>

impl<T: Hash + Scalar> Hash for XYZ<T>

impl<T: Hash + Scalar> Hash for XYZW<T>

impl<T: Hash + Scalar> Hash for XYZWA<T>

impl<T: Hash + Scalar> Hash for XYZWAB<T>

impl<T: Hash + Scalar> Hash for IJKW<T>

impl<T: Hash + Scalar> Hash for M2x2<T>

impl<T: Hash + Scalar> Hash for M2x3<T>

impl<T: Hash + Scalar> Hash for M2x4<T>

impl<T: Hash + Scalar> Hash for M2x5<T>

impl<T: Hash + Scalar> Hash for M2x6<T>

impl<T: Hash + Scalar> Hash for M3x2<T>

impl<T: Hash + Scalar> Hash for M3x3<T>

impl<T: Hash + Scalar> Hash for M3x4<T>

impl<T: Hash + Scalar> Hash for M3x5<T>

impl<T: Hash + Scalar> Hash for M3x6<T>

impl<T: Hash + Scalar> Hash for M4x2<T>

impl<T: Hash + Scalar> Hash for M4x3<T>

impl<T: Hash + Scalar> Hash for M4x4<T>

impl<T: Hash + Scalar> Hash for M4x5<T>

impl<T: Hash + Scalar> Hash for M4x6<T>

impl<T: Hash + Scalar> Hash for M5x2<T>

impl<T: Hash + Scalar> Hash for M5x3<T>

impl<T: Hash + Scalar> Hash for M5x4<T>

impl<T: Hash + Scalar> Hash for M5x5<T>

impl<T: Hash + Scalar> Hash for M5x6<T>

impl<T: Hash + Scalar> Hash for M6x2<T>

impl<T: Hash + Scalar> Hash for M6x3<T>

impl<T: Hash + Scalar> Hash for M6x4<T>

impl<T: Hash + Scalar> Hash for M6x5<T>

impl<T: Hash + Scalar> Hash for M6x6<T>

impl<const R: usize> Hash for Const<R>

impl<T: Hash, const R: usize, const C: usize> Hash for ArrayStorage<T, R, C>

impl<T, R, C, S> Hash for Matrix<T, R, C, S>where
    T: Scalar + Hash,
    R: Dim,
    C: Dim,
    S: Storage<T, R, C>,

impl<T: Hash> Hash for Unit<T>

impl<T: Scalar + Hash, const D: usize> Hash for Point<T, D>

impl<T: Scalar + Hash, const D: usize> Hash for Rotation<T, D>where
    <DefaultAllocator as Allocator<T, Const<D>, Const<D>>>::Buffer: Hash,

impl<T: Scalar + Hash> Hash for Quaternion<T>

impl<T: Scalar + Hash, const D: usize> Hash for Translation<T, D>where
    Owned<T, Const<D>>: Hash,

impl<T: Scalar + Hash, R: Hash, const D: usize> Hash for Isometry<T, R, D>where
    Owned<T, Const<D>>: Hash,

impl<T: Scalar + Hash, R: Hash, const D: usize> Hash for Similarity<T, R, D>where
    Owned<T, Const<D>>: Hash,

impl Hash for TGeneral

impl Hash for TProjective

impl Hash for TAffine

impl Hash for RouteFlags

impl Hash for RouteHeader

impl Hash for RuleFlags

impl Hash for SocketAddr

impl Hash for AtFlags

impl Hash for OFlag

impl Hash for RenameFlags

impl Hash for SealFlag

impl Hash for FdFlag

impl<'a> Hash for FcntlArg<'a>

impl Hash for FlockArg

impl Hash for MsFlags

impl Hash for MntFlags

impl Hash for CloneFlags

impl Hash for CpuSet

impl Hash for Signal

impl Hash for SaFlags

impl Hash for SigmaskHow

impl Hash for SigSet

impl Hash for SigHandler

impl Hash for SigAction

impl Hash for SigevNotify

impl Hash for SigEvent

impl Hash for SfdFlags

impl Hash for SignalFd

impl Hash for SFlag

impl Hash for Mode

impl Hash for FsFlags

impl Hash for Statvfs

impl Hash for SysInfo

impl Hash for TimeSpec

impl Hash for TimeVal

impl Hash for RemoteIoVec

impl<T: Hash> Hash for IoVec<T>

impl Hash for WaitPidFlag

impl Hash for WaitStatus

impl Hash for Id

impl Hash for Pid

impl Hash for AccessFlags

impl Hash for Sign

impl Hash for BigInt

impl Hash for BigUint

impl<T: Hash> Hash for Complex<T>

impl Hash for Error

impl Hash for ErrorKind

impl Hash for Grouping

impl Hash for Locale

impl<'a> Hash for DecimalStr<'a>

impl<'a> Hash for InfinityStr<'a>

impl<'a> Hash for MinusSignStr<'a>

impl<'a> Hash for NanStr<'a>

impl<'a> Hash for PlusSignStr<'a>

impl<'a> Hash for SeparatorStr<'a>

impl<T: Clone + Integer + Hash> Hash for Ratio<T>

impl Hash for AddressSize

impl Hash for SectionKind

impl Hash for ComdatKind

impl Hash for SymbolKind

impl Hash for SymbolScope

impl Hash for FileFlags

impl<Section: Hash> Hash for SymbolFlags<Section>

impl Hash for Endianness

impl Hash for BigEndian

impl<E: Hash + Endian> Hash for U16Bytes<E>

impl<E: Hash + Endian> Hash for U32Bytes<E>

impl<E: Hash + Endian> Hash for U64Bytes<E>

impl<E: Hash + Endian> Hash for I16Bytes<E>

impl<E: Hash + Endian> Hash for I32Bytes<E>

impl<E: Hash + Endian> Hash for I64Bytes<E>

impl Hash for ArchiveKind

impl Hash for FileKind

impl Hash for ObjectKind

impl Hash for SymbolIndex

impl<'data> Hash for SymbolMapName<'data>

impl<'data> Hash for ObjectMapEntry<'data>

impl<'data> Hash for CompressedData<'data>

impl<T: Float> Hash for OrderedFloat<T>

impl<T: Float> Hash for NotNan<T>

impl Hash for RawOsStr

impl Hash for RawOsString

impl<O, T> Hash for OwningRef<O, T>where
    T: Hash + ?Sized,

impl<O, T> Hash for OwningRefMut<O, T>where
    T: Hash + ?Sized,

impl Hash for Type

impl Hash for ValueType

impl Hash for BlockType

impl Hash for Instruction

impl Hash for BrTableData

impl<R: Hash> Hash for Error<R>

impl<R: Hash> Hash for ErrorVariant<R>

impl<'i, R: Hash> Hash for Pair<'i, R>

impl<'i, R: Hash> Hash for Pairs<'i, R>

impl<'i> Hash for Position<'i>

impl<'i> Hash for Span<'i>

impl<'i, R: Hash> Hash for Token<'i, R>

impl Hash for Rule

impl Hash for Time

impl<Ix> Hash for EdgeIndex<Ix>where
    Ix: IndexType + Hash,

impl<Ix: Hash> Hash for NodeIndex<Ix>

impl<Ix: Hash> Hash for EdgeIndex<Ix>

impl<'b, T> Hash for Ptr<'b, T>

impl Hash for Direction

impl<Id: Hash> Hash for OutboundHrmpMessage<Id>

impl Hash for PeerSet

impl Hash for Recipient

impl Hash for Protocol

impl Hash for Proof

impl Hash for HeadData

impl Hash for Id

impl<H: Hash> Hash for CandidateDescriptor<H>

impl<N: Hash> Hash for CandidateCommitments<N>

impl Hash for CoreIndex

impl Hash for GroupIndex

impl Hash for U128

impl Hash for U256

impl Hash for U512

impl Hash for H128

impl Hash for H160

impl Hash for H256

impl Hash for H384

impl Hash for H512

impl Hash for H768

impl Hash for Ident

impl Hash for MetricType

impl Hash for Inst

impl Hash for Block

impl Hash for RegClass

impl Hash for PReg

impl Hash for VReg

impl Hash for SpillSlot

impl Hash for Operand

impl Hash for Allocation

impl Hash for ProgPoint

impl Hash for Protection

impl Hash for FdFlags

impl Hash for Access

impl Hash for AtFlags

impl Hash for Mode

impl Hash for OFlags

impl Hash for RenameFlags

impl Hash for MemfdFlags

impl Hash for SealFlags

impl Hash for StatxFlags

impl Hash for Errno

impl Hash for PollFlags

impl Hash for DupFlags

impl Hash for PipeFlags

impl Hash for CreateFlags

impl Hash for EventFlags

impl Hash for ProtFlags

impl Hash for MapFlags

impl Hash for MremapFlags

impl Hash for MsyncFlags

impl Hash for MlockFlags

impl Hash for Certificate

impl Hash for ServerName

impl Hash for ProtocolId

impl Hash for SetId

impl Hash for SeqID

impl Hash for PublicKey

impl Hash for VRFOutput

impl Hash for VRFInOut

impl Hash for ChainCode

impl<K: Hash> Hash for ExtendedKey<K>

impl<'buf> Hash for SignOnlyPreallocated<'buf>

impl<'buf> Hash for VerifyOnlyPreallocated<'buf>

impl<'buf> Hash for AllPreallocated<'buf>

impl Hash for SignOnly

impl Hash for VerifyOnly

impl Hash for All

impl Hash for SecretKey

impl Hash for PublicKey

impl Hash for KeyPair

impl Hash for Parity

impl Hash for Signature

impl Hash for Signature

impl Hash for Message

impl Hash for Error

impl Hash for PublicKey

impl Hash for Signature

impl Hash for KeyPair

impl Hash for Number

impl Hash for SigId

impl Hash for KeyData

impl Hash for DefaultKey

impl<A: Array> Hash for SmallVec<A>where
    A::Item: Hash,

impl Hash for OpCode

impl Hash for CloseReason

impl<'a> Hash for Incoming<'a>

impl Hash for Data

impl Hash for Public

impl Hash for Signature

impl Hash for Public

impl Hash for Signature

impl Hash for Public

impl Hash for Signature

impl Hash for AccountId32

impl Hash for Dummy

impl Hash for KeyTypeId

impl Hash for Public

impl Hash for Signature

impl Hash for Public

impl Hash for Signature

impl Hash for Public

impl Hash for Signature

impl Hash for Bytes

impl Hash for Keyring

impl Hash for Keyring

impl<AccountId: Hash, AccountIndex: Hash> Hash for MultiAddress<AccountId, AccountIndex>

impl Hash for StorageKey

impl Hash for StorageData

impl Hash for ChildInfo

impl Hash for Token

impl Hash for TokenAmount

impl Hash for ParseError

impl Hash for Underscore

impl Hash for Abstract

impl Hash for As

impl Hash for Async

impl Hash for Auto

impl Hash for Await

impl Hash for Become

impl Hash for Box

impl Hash for Break

impl Hash for Const

impl Hash for Continue

impl Hash for Crate

impl Hash for Default

impl Hash for Do

impl Hash for Dyn

impl Hash for Else

impl Hash for Enum

impl Hash for Extern

impl Hash for Final

impl Hash for Fn

impl Hash for For

impl Hash for If

impl Hash for Impl

impl Hash for In

impl Hash for Let

impl Hash for Loop

impl Hash for Macro

impl Hash for Match

impl Hash for Mod

impl Hash for Move

impl Hash for Mut

impl Hash for Override

impl Hash for Priv

impl Hash for Pub

impl Hash for Ref

impl Hash for Return

impl Hash for SelfType

impl Hash for SelfValue

impl Hash for Static

impl Hash for Struct

impl Hash for Super

impl Hash for Trait

impl Hash for Try

impl Hash for Type

impl Hash for Typeof

impl Hash for Union

impl Hash for Unsafe

impl Hash for Unsized

impl Hash for Use

impl Hash for Virtual

impl Hash for Where

impl Hash for While

impl Hash for Yield

impl Hash for Add

impl Hash for AddEq

impl Hash for And

impl Hash for AndAnd

impl Hash for AndEq

impl Hash for At

impl Hash for Bang

impl Hash for Caret

impl Hash for CaretEq

impl Hash for Colon

impl Hash for Colon2

impl Hash for Comma

impl Hash for Div

impl Hash for DivEq

impl Hash for Dollar

impl Hash for Dot

impl Hash for Dot2

impl Hash for Dot3

impl Hash for DotDotEq

impl Hash for Eq

impl Hash for EqEq

impl Hash for Ge

impl Hash for Gt

impl Hash for Le

impl Hash for Lt

impl Hash for MulEq

impl Hash for Ne

impl Hash for Or

impl Hash for OrEq

impl Hash for OrOr

impl Hash for Pound

impl Hash for Question

impl Hash for RArrow

impl Hash for LArrow

impl Hash for Rem

impl Hash for RemEq

impl Hash for FatArrow

impl Hash for Semi

impl Hash for Shl

impl Hash for ShlEq

impl Hash for Shr

impl Hash for ShrEq

impl Hash for Star

impl Hash for Sub

impl Hash for SubEq

impl Hash for Tilde

impl Hash for Brace

impl Hash for Bracket

impl Hash for Paren

impl Hash for Group

impl Hash for Member

impl Hash for Index

impl<'a> Hash for ImplGenerics<'a>

impl<'a> Hash for TypeGenerics<'a>

impl<'a> Hash for Turbofish<'a>

impl Hash for Lifetime

impl Hash for LitStr

impl Hash for LitByteStr

impl Hash for LitByte

impl Hash for LitChar

impl Hash for LitInt

impl Hash for LitFloat

impl<T, P> Hash for Punctuated<T, P>where
    T: Hash,
    P: Hash,

impl Hash for Abi

impl Hash for Arm

impl Hash for AttrStyle

impl Hash for Attribute

impl Hash for BareFnArg

impl Hash for BinOp

impl Hash for Binding

impl Hash for Block

impl Hash for ConstParam

impl Hash for Constraint

impl Hash for Data

impl Hash for DataEnum

impl Hash for DataStruct

impl Hash for DataUnion

impl Hash for DeriveInput

impl Hash for Expr

impl Hash for ExprArray

impl Hash for ExprAssign

impl Hash for ExprAsync

impl Hash for ExprAwait

impl Hash for ExprBinary

impl Hash for ExprBlock

impl Hash for ExprBox

impl Hash for ExprBreak

impl Hash for ExprCall

impl Hash for ExprCast

impl Hash for ExprClosure

impl Hash for ExprField

impl Hash for ExprForLoop

impl Hash for ExprGroup

impl Hash for ExprIf

impl Hash for ExprIndex

impl Hash for ExprLet

impl Hash for ExprLit

impl Hash for ExprLoop

impl Hash for ExprMacro

impl Hash for ExprMatch

impl Hash for ExprParen

impl Hash for ExprPath

impl Hash for ExprRange

impl Hash for ExprRepeat

impl Hash for ExprReturn

impl Hash for ExprStruct

impl Hash for ExprTry

impl Hash for ExprTuple

impl Hash for ExprType

impl Hash for ExprUnary

impl Hash for ExprUnsafe

impl Hash for ExprWhile

impl Hash for ExprYield

impl Hash for Field

impl Hash for FieldPat

impl Hash for FieldValue

impl Hash for Fields

impl Hash for FieldsNamed

impl Hash for File

impl Hash for FnArg

impl Hash for ForeignItem

impl Hash for Generics

impl Hash for ImplItem

impl Hash for Item

impl Hash for ItemConst

impl Hash for ItemEnum

impl Hash for ItemFn

impl Hash for ItemImpl

impl Hash for ItemMacro

impl Hash for ItemMacro2

impl Hash for ItemMod

impl Hash for ItemStatic

impl Hash for ItemStruct

impl Hash for ItemTrait

impl Hash for ItemType

impl Hash for ItemUnion

impl Hash for ItemUse

impl Hash for Label

impl Hash for LifetimeDef

impl Hash for Lit

impl Hash for LitBool

impl Hash for Local

impl Hash for Macro

impl Hash for Meta

impl Hash for MetaList

impl Hash for NestedMeta

impl Hash for Pat

impl Hash for PatBox

impl Hash for PatIdent

impl Hash for PatLit

impl Hash for PatMacro

impl Hash for PatOr

impl Hash for PatPath

impl Hash for PatRange

impl Hash for PatRest

impl Hash for PatSlice

impl Hash for PatStruct

impl Hash for PatTuple

impl Hash for PatType

impl Hash for PatWild

impl Hash for Path

impl Hash for PathSegment

impl Hash for PredicateEq

impl Hash for QSelf

impl Hash for RangeLimits

impl Hash for Receiver

impl Hash for ReturnType

impl Hash for Signature

impl Hash for Stmt

impl Hash for TraitBound

impl Hash for TraitItem

impl Hash for Type

impl Hash for TypeArray

impl Hash for TypeBareFn

impl Hash for TypeGroup

impl Hash for TypeInfer

impl Hash for TypeMacro

impl Hash for TypeNever

impl Hash for TypeParam

impl Hash for TypeParen

impl Hash for TypePath

impl Hash for TypePtr

impl Hash for TypeSlice

impl Hash for TypeTuple

impl Hash for UnOp

impl Hash for UseGlob

impl Hash for UseGroup

impl Hash for UseName

impl Hash for UsePath

impl Hash for UseRename

impl Hash for UseTree

impl Hash for Variadic

impl Hash for Variant

impl Hash for VisCrate

impl Hash for VisPublic

impl Hash for Visibility

impl Hash for WhereClause

impl Hash for Nothing

impl Hash for AddBounds

impl Hash for BindStyle

impl<'a> Hash for BindingInfo<'a>

impl<'a> Hash for VariantAst<'a>

impl<'a> Hash for VariantInfo<'a>

impl<'a> Hash for Structure<'a>

impl Hash for Size

impl Hash for CDataModel

impl Hash for Vendor

impl Hash for Environment

impl Hash for Endianness

impl Hash for Triple

impl Hash for Duration

impl Hash for Timespec

impl Hash for Tm

impl<A: Array> Hash for ArrayVec<A>where
    A::Item: Hash,

impl<'s, T> Hash for SliceVec<'s, T>where
    T: Hash,

impl<A: Array> Hash for TinyVec<A>where
    A::Item: Hash,

impl Hash for UCred

impl Hash for SignalKind

impl Hash for Instant

impl Hash for BytesCodec

impl Hash for LinesCodec

impl<T: Hash> Hash for Spanned<T>

impl Hash for Span

impl Hash for Identifier

impl Hash for Field

impl Hash for Level

impl Hash for LevelFilter

impl Hash for Id

impl Hash for Bytes

impl Hash for Header

impl Hash for MessageType

impl Hash for Flags

impl Hash for OpCode

impl Hash for Query

impl Hash for QueryParts

impl Hash for DNSClass

impl Hash for Label

impl Hash for Name

impl Hash for CAA

impl Hash for Property

impl Hash for Value

impl Hash for KeyValue

impl Hash for CSYNC

impl Hash for HINFO

impl Hash for MX

impl Hash for NAPTR

impl Hash for NULL

impl Hash for OPENPGPKEY

impl Hash for EdnsCode

impl Hash for EdnsOption

impl Hash for SOA

impl Hash for SRV

impl Hash for SSHFP

impl Hash for Algorithm

impl Hash for SVCB

impl Hash for SvcParamKey

impl Hash for Mandatory

impl Hash for Alpn

impl Hash for EchConfig

impl<T: Hash> Hash for IpHint<T>

impl Hash for Unknown

impl Hash for TLSA

impl Hash for CertUsage

impl Hash for Selector

impl Hash for Matching

impl Hash for TXT

impl Hash for RecordType

impl Hash for B0

impl Hash for B1

impl<U: Hash + Unsigned + NonZero> Hash for PInt<U>

impl<U: Hash + Unsigned + NonZero> Hash for NInt<U>

impl Hash for Z0

impl Hash for UTerm

impl<U: Hash, B: Hash> Hash for UInt<U, B>

impl Hash for ATerm

impl<V: Hash, A: Hash> Hash for TArr<V, A>

impl Hash for Greater

impl Hash for Less

impl Hash for Equal

impl<S: AsRef<str>> Hash for Ascii<S>

impl<S: AsRef<str>> Hash for UniCase<S>

impl<S: Hash> Hash for Host<S>

impl Hash for Origin

impl Hash for Url

impl<'a> Hash for BinaryReader<'a>

impl Hash for Ieee32

impl Hash for Ieee64

impl Hash for V128

impl Hash for Type

impl Hash for FuncType

impl Hash for TableType

impl Hash for MemoryType

impl Hash for GlobalType

impl Hash for TypeId

impl Hash for TrapCode

impl Hash for Mutability

impl Hash for ValType

impl Hash for FuncType

impl Hash for GlobalType

impl Hash for TableType

impl Hash for MemoryType

impl Hash for FlagValue

impl Hash for MemoryStyle

impl Hash for MemoryPlan

impl Hash for TableStyle

impl Hash for TablePlan

impl Hash for TrapCode

impl Hash for Tunables

impl Hash for WasmType

impl Hash for FuncIndex

impl Hash for TableIndex

impl Hash for GlobalIndex

impl Hash for MemoryIndex

impl Hash for DataIndex

impl Hash for ElemIndex

impl Hash for TypeIndex

impl Hash for TagIndex

impl Hash for EntityIndex

impl Hash for Global

impl Hash for GlobalInit

impl Hash for Table

impl Hash for Memory

impl Hash for Tag

impl Hash for DnsName

impl Hash for PublicKey

impl Hash for StreamId

impl Hash for Packet

impl Hash for Mode