Trait sp_std::hash::Hash

1.0.0 · source ·
pub trait Hash {
    // Required method
    fn hash<H>(&self, state: &mut H)
       where H: Hasher;

    // Provided method
    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)].

Violating this property is a logic error. The behavior resulting from a logic error is not specified, but users of the trait must ensure that such logic errors do not result in undefined behavior. This means that unsafe code must not rely on the correctness of these methods.

§Prefix collisions

Implementations of hash should ensure that the data they pass to the Hasher are prefix-free. That is, values which are not equal 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§

1.0.0 · source

fn hash<H>(&self, state: &mut H)
where H: Hasher,

Feeds this value into the given Hasher.

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

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

Provided Methods§

1.3.0 · source

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

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::hash::{DefaultHasher, 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());

Object Safety§

This trait is not object safe.

Implementors§

1.0.0 · source§

impl Hash for sp_std::cmp::Ordering

1.44.0 · source§

impl Hash for Infallible

1.0.0 · source§

impl Hash for sp_std::sync::atomic::Ordering

source§

impl Hash for AsciiChar

1.7.0 · source§

impl Hash for IpAddr

source§

impl Hash for Ipv6MulticastScope

1.0.0 · source§

impl Hash for SocketAddr

1.0.0 · source§

impl Hash for ErrorKind

1.0.0 · source§

impl Hash for bool

1.0.0 · source§

impl Hash for char

1.0.0 · source§

impl Hash for i8

1.0.0 · source§

impl Hash for i16

1.0.0 · source§

impl Hash for i32

1.0.0 · source§

impl Hash for i64

1.0.0 · source§

impl Hash for i128

1.0.0 · source§

impl Hash for isize

1.29.0 · source§

impl Hash for !

1.0.0 · source§

impl Hash for str

1.0.0 · source§

impl Hash for u8

1.0.0 · source§

impl Hash for u16

1.0.0 · source§

impl Hash for u32

1.0.0 · source§

impl Hash for u64

1.0.0 · source§

impl Hash for u128

1.0.0 · source§

impl Hash for ()

1.0.0 · source§

impl Hash for usize

1.28.0 · source§

impl Hash for Layout

1.0.0 · source§

impl Hash for TypeId

1.0.0 · source§

impl Hash for Error

1.33.0 · source§

impl Hash for PhantomPinned

1.0.0 · source§

impl Hash for RangeFull

source§

impl Hash for Alignment

1.3.0 · source§

impl Hash for Duration

1.64.0 · source§

impl Hash for CString

1.0.0 · source§

impl Hash for String

1.64.0 · source§

impl Hash for CStr

1.0.0 · source§

impl Hash for Ipv4Addr

1.0.0 · source§

impl Hash for Ipv6Addr

1.0.0 · source§

impl Hash for SocketAddrV4

1.0.0 · source§

impl Hash for SocketAddrV6

1.0.0 · source§

impl Hash for OsStr

1.0.0 · source§

impl Hash for OsString

1.1.0 · source§

impl Hash for FileType

source§

impl Hash for UCred

1.0.0 · source§

impl Hash for Path

1.0.0 · source§

impl Hash for PathBuf

1.0.0 · source§

impl Hash for PrefixComponent<'_>

1.19.0 · source§

impl Hash for ThreadId

1.8.0 · source§

impl Hash for Instant

1.8.0 · source§

impl Hash for SystemTime

1.0.0 · source§

impl<'a> Hash for Component<'a>

1.0.0 · source§

impl<'a> Hash for Prefix<'a>

1.10.0 · source§

impl<'a> Hash for Location<'a>

1.0.0 · source§

impl<B> Hash for Cow<'_, B>
where B: Hash + ToOwned + ?Sized,

1.55.0 · source§

impl<B, C> Hash for ControlFlow<B, C>
where B: Hash, C: Hash,

source§

impl<Dyn> Hash for DynMetadata<Dyn>
where Dyn: ?Sized,

1.4.0 · source§

impl<F> Hash for F
where F: FnPtr,

1.0.0 · source§

impl<Idx> Hash for sp_std::ops::Range<Idx>
where Idx: Hash,

1.0.0 · source§

impl<Idx> Hash for sp_std::ops::RangeFrom<Idx>
where Idx: Hash,

1.26.0 · source§

impl<Idx> Hash for sp_std::ops::RangeInclusive<Idx>
where Idx: Hash,

1.0.0 · source§

impl<Idx> Hash for RangeTo<Idx>
where Idx: Hash,

1.26.0 · source§

impl<Idx> Hash for RangeToInclusive<Idx>
where Idx: Hash,

source§

impl<Idx> Hash for core::range::Range<Idx>
where Idx: Hash,

source§

impl<Idx> Hash for core::range::RangeFrom<Idx>
where Idx: Hash,

source§

impl<Idx> Hash for core::range::RangeInclusive<Idx>
where Idx: Hash,

1.0.0 · source§

impl<K, V, A> Hash for BTreeMap<K, V, A>
where K: Hash, V: Hash, A: Allocator + Clone,

1.41.0 · source§

impl<Ptr> Hash for Pin<Ptr>
where Ptr: Deref, <Ptr as Deref>::Target: Hash,

1.17.0 · source§

impl<T> Hash for Bound<T>
where T: Hash,

1.0.0 · source§

impl<T> Hash for Option<T>
where T: Hash,

1.36.0 · source§

impl<T> Hash for Poll<T>
where T: Hash,

1.0.0 · source§

impl<T> Hash for *const T
where T: ?Sized,

1.0.0 · source§

impl<T> Hash for *mut T
where T: ?Sized,

1.0.0 · source§

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

1.0.0 · source§

impl<T> Hash for &mut T
where T: Hash + ?Sized,

1.0.0 · source§

impl<T> Hash for [T]
where T: Hash,

1.0.0 · source§

impl<T> Hash for (T₁, T₂, …, Tₙ)
where T: Hash + ?Sized,

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

1.19.0 · source§

impl<T> Hash for Reverse<T>
where T: Hash,

1.0.0 · source§

impl<T> Hash for PhantomData<T>
where T: ?Sized,

1.21.0 · source§

impl<T> Hash for Discriminant<T>

1.20.0 · source§

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

1.28.0 · source§

impl<T> Hash for NonZero<T>

1.74.0 · source§

impl<T> Hash for Saturating<T>
where T: Hash,

1.0.0 · source§

impl<T> Hash for Wrapping<T>
where T: Hash,

1.25.0 · source§

impl<T> Hash for NonNull<T>
where T: ?Sized,

1.0.0 · source§

impl<T, A> Hash for Box<T, A>
where T: Hash + ?Sized, A: Allocator,

1.0.0 · source§

impl<T, A> Hash for BTreeSet<T, A>
where T: Hash, A: Allocator + Clone,

1.0.0 · source§

impl<T, A> Hash for VecDeque<T, A>
where T: Hash, A: Allocator,

1.0.0 · source§

impl<T, A> Hash for Rc<T, A>
where T: Hash + ?Sized, A: Allocator,

1.0.0 · source§

impl<T, A> Hash for Arc<T, A>
where T: Hash + ?Sized, A: Allocator,

1.0.0 · source§

impl<T, A> Hash for Vec<T, A>
where T: Hash, A: Allocator,

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

use std::hash::BuildHasher;

let b = std::hash::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));
1.0.0 · source§

impl<T, A> Hash for LinkedList<T, A>
where T: Hash, A: Allocator,

1.0.0 · source§

impl<T, E> Hash for Result<T, E>
where T: Hash, E: Hash,

1.0.0 · source§

impl<T, const N: usize> Hash for [T; N]
where T: Hash,

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

use std::hash::BuildHasher;

let b = std::hash::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));
source§

impl<T, const N: usize> Hash for Simd<T, N>

source§

impl<Y, R> Hash for CoroutineState<Y, R>
where Y: Hash, R: Hash,

impl Hash for Error

impl Hash for StateID

impl Hash for Match

impl Hash for PatternID

impl Hash for Span

impl<T: Hash, A: Allocator> Hash for Vec<T, A>

impl<T: ?Sized + Hash, A: Allocator> Hash for Box<T, A>

impl Hash for AnsiColor

impl Hash for Color

impl Hash for Effects

impl Hash for Reset

impl Hash for RgbColor

impl Hash for Style

impl<T, const CAP: usize> Hash for ArrayVec<T, CAP>
where T: Hash,

impl<const CAP: usize> Hash for ArrayString<CAP>

impl<'a> Hash for Oid<'a>

impl Hash for Hash

impl Hash for Hash

impl Hash for Hash

impl Hash for Hash

impl Hash for Midstate

impl Hash for Hash

impl Hash for Hash

impl Hash for Hash

impl Hash for Hash

impl<T: Tag> Hash for Hash<T>

impl<T: Hash + Hash> Hash for Hmac<T>

impl Hash for Case

impl Hash for InputString

impl Hash for Lsb0

impl Hash for Msb0

impl<'a, M, T, O> Hash for PartialElement<'a, M, T, O>
where M: Mutability, T: 'a + BitStore, O: BitOrder,

impl<A, O> Hash for BitArray<A, O>
where A: BitViewSized, O: BitOrder,

impl<M, T, O> Hash for BitPtr<M, T, O>
where M: Mutability, T: BitStore, O: BitOrder,

impl<M, T, O> Hash for BitPtrRange<M, T, O>
where M: Mutability, T: BitStore, O: BitOrder,

impl<M, T, O> Hash for BitRef<'_, M, T, O>
where M: Mutability, T: BitStore, O: BitOrder,

impl<R> Hash for BitEnd<R>
where R: BitRegister + Hash,

impl<R> Hash for BitIdx<R>
where R: BitRegister + Hash,

impl<R> Hash for BitIdxError<R>
where R: BitRegister + Hash,

impl<R> Hash for BitMask<R>
where R: BitRegister + Hash,

impl<R> Hash for BitPos<R>
where R: BitRegister + Hash,

impl<R> Hash for BitSel<R>
where R: BitRegister + Hash,

impl<T> Hash for BitPtrError<T>
where T: BitStore + Hash,

impl<T> Hash for BitSpanError<T>
where T: BitStore + Hash,

impl<T, O> Hash for BitBox<T, O>
where T: BitStore, O: BitOrder,

impl<T, O> Hash for BitSlice<T, O>
where T: BitStore, O: BitOrder,

impl<T, O> Hash for BitVec<T, O>
where T: BitStore, O: BitOrder,

impl<T: Hash> Hash for MisalignError<T>

impl<'a, T: Hash, S> Hash for BoundedSlice<'a, T, S>

impl<K: Hash, V: Hash, S> Hash for BoundedBTreeMap<K, V, S>

impl<T: Hash, S> Hash for BoundedBTreeSet<T, S>

impl<T: Hash, S> Hash for BoundedVec<T, S>

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

impl Hash for BigEndian

impl Hash for Bytes

impl Hash for BytesMut

impl Hash for ByteSize

impl Hash for Endian

impl Hash for HasAtomic

impl Hash for Abi

impl Hash for Arch

impl Hash for Env

impl Hash for Families

impl Hash for Family

impl Hash for HasAtomics

impl Hash for Os

impl Hash for Panic

impl Hash for TargetInfo

impl Hash for Triple

impl Hash for Vendor

impl Hash for Month

impl Hash for Weekday

impl Hash for Colons

impl Hash for Fixed

impl Hash for Numeric

impl Hash for Pad

impl Hash for ParseError

impl Hash for Parsed

impl Hash for IsoWeek

impl Hash for NaiveDate

impl Hash for NaiveTime

impl Hash for FixedOffset

impl Hash for Utc

impl Hash for Days

impl Hash for Months

impl Hash for OutOfRange

impl Hash for TimeDelta

impl<'a> Hash for Item<'a>

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

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

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

impl Hash for Version

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

impl Hash for ValueHint

impl Hash for ContextKind

impl Hash for ErrorKind

impl Hash for OsStr

impl Hash for Str

impl Hash for ValueRange

impl Hash for Id

impl<T: Hash> Hash for Resettable<T>

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

impl Hash for Duration

impl Hash for Instant

impl Hash for Key

impl Hash for ErrorKind

impl Hash for Error

impl<'a> Hash for &'a TemplateParam

impl Hash for FloatCC

impl Hash for IntCC

impl Hash for AnyEntity

impl Hash for AtomicRmwOp

impl Hash for Endianness

impl Hash for KnownSymbol

impl Hash for LibCall

impl Hash for TrapCode

impl Hash for Opcode

impl Hash for CallConv

impl Hash for Detail

impl Hash for OptLevel

impl Hash for TlsModel

impl Hash for BlockData

impl Hash for Blocks

impl Hash for Insts

impl Hash for Block

impl Hash for Constant

impl Hash for DynamicType

impl Hash for FuncRef

impl Hash for GlobalValue

impl Hash for Immediate

impl Hash for Inst

impl Hash for JumpTable

impl Hash for SigRef

impl Hash for StackSlot

impl Hash for Table

impl Hash for Value

impl Hash for Ieee32

impl Hash for Ieee64

impl Hash for Imm64

impl Hash for Offset32

impl Hash for Uimm32

impl Hash for Uimm64

impl Hash for V128Imm

impl Hash for BlockCall

impl Hash for Layout

impl Hash for AbiParam

impl Hash for ExtFuncData

impl Hash for MemFlags

impl Hash for Signature

impl Hash for SourceLoc

impl Hash for TableData

impl Hash for ValueLabel

impl Hash for Type

impl Hash for Gpr

impl Hash for Xmm

impl Hash for Flags

impl Hash for Loop

impl Hash for LoopLevel

impl Hash for Descriptor

impl Hash for Template

impl Hash for Builder

impl Hash for Flags

impl Hash for Reg

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

impl<T: Hash + Clone + Copy + Debug + PartialEq + Eq + PartialOrd + Ord + Hash> Hash for Writable<T>

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

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

impl Hash for HeapStyle

impl Hash for Heap

impl Hash for HeapData

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

impl Hash for Limb

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

impl Hash for Scalar

impl<const MIN: i128, const MAX: i128> Hash for OptionRangedI128<MIN, MAX>

impl<const MIN: i128, const MAX: i128> Hash for RangedI128<MIN, MAX>

impl<const MIN: i16, const MAX: i16> Hash for OptionRangedI16<MIN, MAX>

impl<const MIN: i16, const MAX: i16> Hash for RangedI16<MIN, MAX>

impl<const MIN: i32, const MAX: i32> Hash for OptionRangedI32<MIN, MAX>

impl<const MIN: i32, const MAX: i32> Hash for RangedI32<MIN, MAX>

impl<const MIN: i64, const MAX: i64> Hash for OptionRangedI64<MIN, MAX>

impl<const MIN: i64, const MAX: i64> Hash for RangedI64<MIN, MAX>

impl<const MIN: i8, const MAX: i8> Hash for OptionRangedI8<MIN, MAX>

impl<const MIN: i8, const MAX: i8> Hash for RangedI8<MIN, MAX>

impl<const MIN: isize, const MAX: isize> Hash for OptionRangedIsize<MIN, MAX>

impl<const MIN: isize, const MAX: isize> Hash for RangedIsize<MIN, MAX>

impl<const MIN: u128, const MAX: u128> Hash for OptionRangedU128<MIN, MAX>

impl<const MIN: u128, const MAX: u128> Hash for RangedU128<MIN, MAX>

impl<const MIN: u16, const MAX: u16> Hash for OptionRangedU16<MIN, MAX>

impl<const MIN: u16, const MAX: u16> Hash for RangedU16<MIN, MAX>

impl<const MIN: u32, const MAX: u32> Hash for OptionRangedU32<MIN, MAX>

impl<const MIN: u32, const MAX: u32> Hash for RangedU32<MIN, MAX>

impl<const MIN: u64, const MAX: u64> Hash for OptionRangedU64<MIN, MAX>

impl<const MIN: u64, const MAX: u64> Hash for RangedU64<MIN, MAX>

impl<const MIN: u8, const MAX: u8> Hash for OptionRangedU8<MIN, MAX>

impl<const MIN: u8, const MAX: u8> Hash for RangedU8<MIN, MAX>

impl<const MIN: usize, const MAX: usize> Hash for OptionRangedUsize<MIN, MAX>

impl<const MIN: usize, const MAX: usize> Hash for RangedUsize<MIN, MAX>

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

impl Hash for ParseError

impl Hash for WriteStyle

impl Hash for FixedBitSet

impl Hash for FsStats

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 SectionId

impl Hash for DwAccess

impl Hash for DwAddr

impl Hash for DwAt

impl Hash for DwAte

impl Hash for DwCc

impl Hash for DwCfa

impl Hash for DwChildren

impl Hash for DwDefaulted

impl Hash for DwDs

impl Hash for DwDsc

impl Hash for DwEhPe

impl Hash for DwEnd

impl Hash for DwForm

impl Hash for DwId

impl Hash for DwIdx

impl Hash for DwInl

impl Hash for DwLang

impl Hash for DwLle

impl Hash for DwLnct

impl Hash for DwLne

impl Hash for DwLns

impl Hash for DwMacro

impl Hash for DwOp

impl Hash for DwOrd

impl Hash for DwRle

impl Hash for DwSect

impl Hash for DwSectV2

impl Hash for DwTag

impl Hash for DwUt

impl Hash for DwVis

impl Hash for Range

impl Hash for BigEndian

impl Hash for DwoId

impl Hash for Encoding

impl Hash for Register

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

impl Hash for StreamId

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 Hash for Case

impl Hash for MessageType

impl Hash for OpCode

impl Hash for DNSClass

impl Hash for Property

impl Hash for Value

impl Hash for EdnsCode

impl Hash for EdnsOption

impl Hash for Algorithm

impl Hash for SvcParamKey

impl Hash for CertUsage

impl Hash for Matching

impl Hash for Selector

impl Hash for RecordType

impl Hash for Flags

impl Hash for Header

impl Hash for Query

impl Hash for QueryParts

impl Hash for Label

impl Hash for Name

impl Hash for A

impl Hash for AAAA

impl Hash for CAA

impl Hash for KeyValue

impl Hash for CSYNC

impl Hash for HINFO

impl Hash for HTTPS

impl Hash for MX

impl Hash for ANAME

impl Hash for CNAME

impl Hash for NS

impl Hash for PTR

impl Hash for NAPTR

impl Hash for NULL

impl Hash for OPENPGPKEY

impl Hash for SOA

impl Hash for SRV

impl Hash for SSHFP

impl Hash for Alpn

impl Hash for EchConfig

impl Hash for Mandatory

impl Hash for SVCB

impl Hash for Unknown

impl Hash for TLSA

impl Hash for TXT

impl Hash for LowerName

impl Hash for RrKey

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

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<K: Hash, V: Hash> Hash for Slice<K, V>

impl<T: Hash> Hash for Slice<T>

impl Hash for IpNetwork

impl Hash for Ipv4Network

impl Hash for Ipv6Network

impl Hash for IpAddrRange

impl Hash for IpNet

impl Hash for IpSubnets

impl Hash for Ipv4Net

impl Hash for Ipv4Subnets

impl Hash for Ipv6Net

impl Hash for Ipv6Subnets

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

impl Hash for Port

impl Hash for Authority

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

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

impl Hash for Dl_info

impl Hash for Elf32_Chdr

impl Hash for Elf32_Ehdr

impl Hash for Elf32_Phdr

impl Hash for Elf32_Shdr

impl Hash for Elf32_Sym

impl Hash for Elf64_Chdr

impl Hash for Elf64_Ehdr

impl Hash for Elf64_Phdr

impl Hash for Elf64_Shdr

impl Hash for Elf64_Sym

impl Hash for __timeval

impl Hash for addrinfo

impl Hash for af_alg_iv

impl Hash for aiocb

impl Hash for arphdr

impl Hash for arpreq

impl Hash for arpreq_old

impl Hash for can_filter

impl Hash for clone_args

impl Hash for cmsghdr

impl Hash for cpu_set_t

impl Hash for dirent

impl Hash for dirent64

impl Hash for dqblk

impl Hash for epoll_event

impl Hash for fd_set

impl Hash for ff_effect

impl Hash for ff_envelope

impl Hash for ff_replay

impl Hash for ff_trigger

impl Hash for flock

impl Hash for flock64

impl Hash for fsid_t

impl Hash for genlmsghdr

impl Hash for glob64_t

impl Hash for glob_t

impl Hash for group

impl Hash for hostent

impl Hash for ifaddrs

impl Hash for in6_addr

impl Hash for in6_ifreq

impl Hash for in6_pktinfo

impl Hash for in6_rtmsg

impl Hash for in_addr

impl Hash for in_pktinfo

impl Hash for input_event

impl Hash for input_id

impl Hash for input_mask

impl Hash for iocb

impl Hash for iovec

impl Hash for ip_mreq

impl Hash for ip_mreqn

impl Hash for ipc_perm

impl Hash for ipv6_mreq

impl Hash for itimerspec

impl Hash for itimerval

impl Hash for lconv

impl Hash for linger

impl Hash for mallinfo

impl Hash for mallinfo2

impl Hash for mcontext_t

impl Hash for mmsghdr

impl Hash for mntent

impl Hash for mq_attr

impl Hash for msghdr

impl Hash for msginfo

impl Hash for msqid_ds

impl Hash for nl_mmap_hdr

impl Hash for nl_mmap_req

impl Hash for nl_pktinfo

impl Hash for nlattr

impl Hash for nlmsgerr

impl Hash for nlmsghdr

impl Hash for ntptimeval

impl Hash for open_how

impl Hash for option

impl Hash for packet_mreq

impl Hash for passwd

impl Hash for pollfd

impl Hash for protoent

impl Hash for regex_t

impl Hash for regmatch_t

impl Hash for rlimit

impl Hash for rlimit64

impl Hash for rtentry

impl Hash for rusage

impl Hash for sched_attr

impl Hash for sched_param

impl Hash for sctp_prinfo

impl Hash for sem_t

impl Hash for sembuf

impl Hash for semid_ds

impl Hash for seminfo

impl Hash for servent

impl Hash for shmid_ds

impl Hash for sigaction

impl Hash for sigevent

impl Hash for siginfo_t

impl Hash for sigset_t

impl Hash for sigval

impl Hash for sock_filter

impl Hash for sock_fprog

impl Hash for sockaddr

impl Hash for sockaddr_in

impl Hash for sockaddr_ll

impl Hash for sockaddr_nl

impl Hash for sockaddr_un

impl Hash for sockaddr_vm

impl Hash for spwd

impl Hash for stack_t

impl Hash for stat

impl Hash for stat64

impl Hash for statfs

impl Hash for statfs64

impl Hash for statvfs

impl Hash for statvfs64

impl Hash for statx

impl Hash for sysinfo

impl Hash for termios

impl Hash for termios2

impl Hash for timespec

impl Hash for timeval

impl Hash for timex

impl Hash for tm

impl Hash for tms

impl Hash for ucontext_t

impl Hash for ucred

impl Hash for user

impl Hash for utimbuf

impl Hash for utmpx

impl Hash for utsname

impl Hash for winsize

impl Hash for xdp_desc

impl Hash for xdp_options

impl Hash for Endpoint

impl Hash for ListenerId

impl Hash for PublicKey

impl Hash for PeerId

impl Hash for PublicKey

impl Hash for Key

impl Hash for QueryId

impl<T> Hash for Key<T>

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 Hash for Direction

impl Hash for WantType

impl Hash for Mode

impl Hash for QueryId

impl Hash for Record

impl Hash for Key

impl Hash for PeerId

impl Hash for RequestId

impl Hash for SubstreamId

impl Hash for Packet

impl Hash for StreamId

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 DataFormat

impl Hash for MZError

impl Hash for MZFlush

impl Hash for MZStatus

impl Hash for TINFLStatus

impl Hash for Token

impl Hash for Events

impl Hash for Multiaddr

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

impl Hash for RouteFlags

impl Hash for RouteHeader

impl Hash for RuleFlags

impl Hash for SocketAddr

impl Hash for Addr

impl Hash for V4IfAddr

impl Hash for V6IfAddr

impl Hash for FlockArg

impl Hash for SigHandler

impl Hash for SigevNotify

impl Hash for SigmaskHow

impl Hash for Signal

impl Hash for Id

impl Hash for WaitStatus

impl Hash for AtFlags

impl Hash for FdFlag

impl Hash for OFlag

impl Hash for RenameFlags

impl Hash for SealFlag

impl Hash for MntFlags

impl Hash for MsFlags

impl Hash for CloneFlags

impl Hash for CpuSet

impl Hash for SaFlags

impl Hash for SigAction

impl Hash for SigEvent

impl Hash for SigSet

impl Hash for SfdFlags

impl Hash for SignalFd

impl Hash for Mode

impl Hash for SFlag

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 Hash for WaitPidFlag

impl Hash for AccessFlags

impl Hash for Pid

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

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

impl Hash for ErrorKind

impl<T: Hash> Hash for NonEmpty<T>

impl Hash for Sign

impl Hash for BigInt

impl Hash for BigUint

impl Hash for ErrorKind

impl Hash for Grouping

impl Hash for Locale

impl Hash for Error

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 Hash for Endianness

impl Hash for ArchiveKind

impl Hash for ImportType

impl Hash for AddressSize

impl Hash for ComdatKind

impl Hash for FileFlags

impl Hash for FileKind

impl Hash for ObjectKind

impl Hash for SectionKind

impl Hash for SymbolKind

impl Hash for SymbolScope

impl Hash for BigEndian

impl Hash for SymbolIndex

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

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

impl<'data> Hash for ObjectMapFile<'data>

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

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<E: Hash + Endian> Hash for U16Bytes<E>

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

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

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

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

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

impl Hash for Language

impl Hash for Mnemonic

impl Hash for BlockType

impl Hash for Instruction

impl Hash for Type

impl Hash for ValueType

impl Hash for BrTableData

impl<'a> Hash for Ident<'a>

impl<'a> Hash for Value<'a>

impl Hash for Direction

impl Hash for Time

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

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

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

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

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

impl Hash for PeerSet

impl Hash for Protocol

impl Hash for Recipient

impl Hash for Proof

impl<T: Hash> Hash for Bitfield<T>

impl Hash for HeadData

impl Hash for Id

impl Hash for ChunkIndex

impl Hash for CoreIndex

impl Hash for GroupIndex

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

impl<H: Hash> Hash for CandidateReceiptV2<H>

impl Hash for FrameKind

impl Hash for Opcode

impl Hash for Reg

impl Hash for Gas

impl<const SIZE: usize> Hash for WriteBuffer<SIZE>

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 U128

impl Hash for U256

impl Hash for U512

impl Hash for Ident

impl Hash for LineColumn

impl Hash for MetricType

impl Hash for CidrSubnet

impl Hash for DnType

impl Hash for DnValue

impl Hash for IsCa

impl Hash for KeyIdMethod

impl Hash for SanType

impl Hash for PublicKey

impl Hash for RegClass

impl Hash for Allocation

impl Hash for Block

impl Hash for Inst

impl Hash for Operand

impl Hash for PReg

impl Hash for PRegSet

impl Hash for ProgPoint

impl Hash for SpillSlot

impl Hash for VReg

impl Hash for LazyStateID

impl Hash for Transition

impl Hash for HalfMatch

impl Hash for Match

impl Hash for PatternID

impl Hash for Span

impl Hash for NonMaxUsize

impl Hash for SmallIndex

impl Hash for StateID

impl Hash for PerfMetric

impl Hash for Direction

impl Hash for Action

impl Hash for CreateFlags

impl Hash for ReadFlags

impl Hash for WatchFlags

impl Hash for Access

impl Hash for AtFlags

impl Hash for Gid

impl Hash for MemfdFlags

impl Hash for Mode

impl Hash for OFlags

impl Hash for RenameFlags

impl Hash for SealFlags

impl Hash for StatxFlags

impl Hash for Uid

impl Hash for XattrFlags

impl Hash for DupFlags

impl Hash for Errno

impl Hash for FdFlags

impl Hash for Opcode

impl Hash for InputModes

impl Hash for LocalModes

impl Hash for OutputModes

impl Hash for Pid

impl Hash for IpAddr

impl Hash for Ipv4Addr

impl Hash for Ipv6Addr

impl<'a> Hash for ServerName<'a>

impl<'a> Hash for DnsName<'a>

impl Hash for Handle

impl Hash for ProtocolId

impl Hash for SetId

impl Hash for Roles

impl Hash for StrategyKey

impl Hash for PublicKey

impl Hash for Multiaddr

impl Hash for Multihash

impl Hash for PeerId

impl Hash for Task

impl Hash for SeqID

impl Hash for MetaType

impl Hash for ChainCode

impl Hash for PublicKey

impl Hash for VRFInOut

impl Hash for VRFPreOut

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

impl<Size> Hash for EncodedPoint<Size>
where Size: ModulusSize,

impl Hash for All

impl Hash for Error

impl Hash for Parity

impl Hash for SignOnly

impl Hash for VerifyOnly

impl Hash for Signature

impl Hash for Scalar

impl Hash for Signature

impl Hash for Keypair

impl Hash for Message

impl Hash for PublicKey

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

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

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

impl Hash for Keypair

impl Hash for PublicKey

impl Hash for Signature

impl Hash for ByteBuf

impl Hash for Bytes

impl<const N: usize> Hash for ByteArray<N>

impl Hash for Value

impl Hash for Map<String, Value>

impl Hash for Number

impl<const N: usize, const UPPERCASE: bool> Hash for HexOrBin<N, UPPERCASE>

impl<const UPPERCASE: bool> Hash for HexOrBin<UPPERCASE>

impl Hash for SigId

impl Hash for Algorithm

impl Hash for ChangeTag

impl Hash for DiffOp

impl Hash for DiffTag

impl<'s, T: Hash + DiffableStr + ?Sized> Hash for InlineChange<'s, T>

impl<T: Hash> Hash for Change<T>

impl Hash for CLASS

impl Hash for TYPE

impl Hash for A

impl Hash for AAAA

impl Hash for LOC

impl Hash for NSAP

impl Hash for PacketFlag

impl<'a> Hash for RData<'a>

impl<'a> Hash for AFSDB<'a>

impl<'a> Hash for CAA<'a>

impl<'a> Hash for CNAME<'a>

impl<'a> Hash for HINFO<'a>

impl<'a> Hash for HTTPS<'a>

impl<'a> Hash for ISDN<'a>

impl<'a> Hash for MB<'a>

impl<'a> Hash for MD<'a>

impl<'a> Hash for MF<'a>

impl<'a> Hash for MG<'a>

impl<'a> Hash for MINFO<'a>

impl<'a> Hash for MR<'a>

impl<'a> Hash for MX<'a>

impl<'a> Hash for NAPTR<'a>

impl<'a> Hash for NS<'a>

impl<'a> Hash for NSAP_PTR<'a>

impl<'a> Hash for NULL<'a>

impl<'a> Hash for OPT<'a>

impl<'a> Hash for OPTCode<'a>

impl<'a> Hash for PTR<'a>

impl<'a> Hash for RP<'a>

impl<'a> Hash for RouteThrough<'a>

impl<'a> Hash for SOA<'a>

impl<'a> Hash for SRV<'a>

impl<'a> Hash for SVCB<'a>

impl<'a> Hash for TXT<'a>

impl<'a> Hash for WKS<'a>

impl<'a> Hash for X25<'a>

impl<'a> Hash for CharacterString<'a>

impl<'a> Hash for Name<'a>

impl<'a> Hash for ResourceRecord<'a>

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

impl Hash for SockAddr

impl Hash for OpCode

impl Hash for Data

impl Hash for CloseReason

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

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 Slot

impl Hash for AccountId32

impl Hash for KeyTypeId

impl Hash for Bytes

impl<const N: usize, T> Hash for CryptoBytes<N, T>

impl Hash for Keyring

impl Hash for Keyring

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

impl Hash for ChildInfo

impl Hash for StorageData

impl Hash for StorageKey

impl Hash for Token

impl Hash for TokenAmount

impl Hash for AccessError

impl Hash for Phase

impl Hash for ParseError

impl Hash for CDataModel

impl Hash for Endianness

impl Hash for Environment

impl Hash for Size

impl Hash for Vendor

impl Hash for Triple

impl Hash for Month

impl Hash for Weekday

impl Hash for Date

impl Hash for Duration

impl Hash for Instant

impl Hash for Time

impl Hash for UtcOffset

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

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

impl<A: Array> Hash for ArrayVec<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 Id

impl Hash for Field

impl Hash for Level

impl Hash for LevelFilter

impl Hash for Bytes

impl Hash for MessageType

impl Hash for OpCode

impl Hash for DNSClass

impl Hash for Property

impl Hash for Value

impl Hash for EdnsCode

impl Hash for EdnsOption

impl Hash for Algorithm

impl Hash for SvcParamKey

impl Hash for CertUsage

impl Hash for Matching

impl Hash for Selector

impl Hash for RecordType

impl Hash for Flags

impl Hash for Header

impl Hash for Query

impl Hash for QueryParts

impl Hash for Label

impl Hash for Name

impl Hash for A

impl Hash for AAAA

impl Hash for CAA

impl Hash for KeyValue

impl Hash for CSYNC

impl Hash for HINFO

impl Hash for HTTPS

impl Hash for MX

impl Hash for ANAME

impl Hash for CNAME

impl Hash for NS

impl Hash for PTR

impl Hash for NAPTR

impl Hash for NULL

impl Hash for OPENPGPKEY

impl Hash for SOA

impl Hash for SRV

impl Hash for SSHFP

impl Hash for Alpn

impl Hash for EchConfig

impl Hash for Mandatory

impl Hash for SVCB

impl Hash for Unknown

impl Hash for TLSA

impl Hash for TXT

impl Hash for LowerName

impl Hash for RrKey

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

impl Hash for ATerm

impl Hash for B0

impl Hash for B1

impl Hash for Z0

impl Hash for Equal

impl Hash for Greater

impl Hash for Less

impl Hash for UTerm

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

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

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

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

impl Hash for Origin

impl Hash for Url

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

impl Hash for HeapType

impl Hash for ValType

impl Hash for FuncType

impl Hash for GlobalType

impl Hash for Ieee32

impl Hash for Ieee64

impl Hash for MemoryType

impl Hash for PackedIndex

impl Hash for RefType

impl Hash for TableType

impl Hash for V128

impl Hash for KebabStr

impl Hash for KebabString

impl Hash for TypeId

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

impl Hash for Mutability

impl Hash for ValType

impl Hash for FuncType

impl Hash for GlobalType

impl Hash for MemoryType

impl Hash for TableType

impl Hash for FlagValue

impl Hash for MemoryStyle

impl Hash for TableStyle

impl Hash for Trap

impl Hash for MemoryPlan

impl Hash for TablePlan

impl Hash for Tunables

impl Hash for EntityIndex

impl Hash for GlobalInit

impl Hash for WasmType

impl Hash for DataIndex

impl Hash for ElemIndex

impl Hash for FuncIndex

impl Hash for Global

impl Hash for GlobalIndex

impl Hash for Memory

impl Hash for MemoryIndex

impl Hash for Table

impl Hash for TableIndex

impl Hash for Tag

impl Hash for TagIndex

impl Hash for TypeIndex

impl Hash for Const

impl Hash for Mut

impl<Inner> Hash for Frozen<Inner>
where Inner: Mutability + Hash,

impl<M, T> Hash for Address<M, T>
where M: Mutability, T: ?Sized,

impl Hash for PublicKey

impl Hash for ASN1Time

impl Hash for Mode

impl Hash for Packet

impl Hash for StreamId

impl Hash for BERMode

impl Hash for PCBit

impl Hash for TagClass

impl Hash for UTCTime

impl Hash for Tag

impl<O: Hash> Hash for F32<O>

impl<O: Hash> Hash for F64<O>

impl<O: Hash> Hash for I128<O>

impl<O: Hash> Hash for I16<O>

impl<O: Hash> Hash for I32<O>

impl<O: Hash> Hash for I64<O>

impl<O: Hash> Hash for U128<O>

impl<O: Hash> Hash for U16<O>

impl<O: Hash> Hash for U32<O>

impl<O: Hash> Hash for U64<O>

impl<T: Unaligned + Hash> Hash for Unalign<T>