Trait nom::lib::std::hash::Hash1.0.0[][src]

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

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)].

Required methods

pub fn hash<H>(&self, state: &mut H) where
    H: Hasher
[src][]

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

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

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());

Implementations on Foreign Types

impl Hash for IpAddr[src]

impl Hash for Ipv6MulticastScope[src]

impl Hash for SocketAddrV6[src]

impl<'a> Hash for Component<'a>[src]

impl Hash for Ipv4Addr[src]

impl Hash for SocketAddrV4[src]

impl Hash for CStr[src]

impl Hash for ErrorKind[src]

impl Hash for Instant[src]

impl<'a> Hash for Prefix<'a>[src]

impl<'_> Hash for PrefixComponent<'_>[src]

impl Hash for PathBuf[src]

impl Hash for Ipv6Addr[src]

impl Hash for Path[src]

impl Hash for UCred[src]

impl Hash for FileType[src]

impl Hash for OsStr[src]

impl Hash for SocketAddr[src]

impl Hash for OsString[src]

impl Hash for SystemTime[src]

impl Hash for ThreadId[src]

impl Hash for CString[src]

impl Hash for ![src]

impl<Ret, A, B, C, D, E> Hash for extern "C" fn(A, B, C, D, E, ...) -> Ret[src]

impl<Ret, A, B> Hash for unsafe extern "C" fn(A, B) -> Ret[src]

impl<Ret, A, B, C> Hash for fn(A, B, C) -> Ret[src]

impl Hash for char[src]

impl<Ret, A, B, C, D, E, F, G> Hash for unsafe fn(A, B, C, D, E, F, G) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Hash for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret[src]

impl<Ret, A, B, C, D, E> Hash for unsafe extern "C" fn(A, B, C, D, E, ...) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Hash for fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret[src]

impl<Ret, A, B, C, D> Hash for fn(A, B, C, D) -> Ret[src]

impl Hash for Duration[src]

impl<Ret, A, B, C, D, E, F> Hash for unsafe extern "C" fn(A, B, C, D, E, F, ...) -> Ret[src]

impl<Ret, A, B, C, D> Hash for extern "C" fn(A, B, C, D) -> Ret[src]

impl<A, B, C, D> Hash for (A, B, C, D) where
    C: Hash,
    A: Hash,
    B: Hash,
    D: Hash + ?Sized
[src]

impl Hash for NonZeroU32[src]

impl<Ret, A> Hash for unsafe fn(A) -> Ret[src]

impl<Ret, A, B, C> Hash for unsafe extern "C" fn(A, B, C) -> Ret[src]

impl Hash for TypeId[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Hash for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret[src]

impl<Ret, A, B> Hash for extern "C" fn(A, B, ...) -> Ret[src]

impl<P> Hash for Pin<P> where
    P: Deref,
    <P as Deref>::Target: Hash
[src]

impl<Ret, A, B> Hash for unsafe extern "C" fn(A, B, ...) -> Ret[src]

impl<T> Hash for PhantomData<T> where
    T: ?Sized
[src]

impl<Ret, A, B, C, D, E, F, G, H> Hash for unsafe fn(A, B, C, D, E, F, G, H) -> Ret[src]

impl Hash for u8[src]

impl<Ret, A, B, C, D, E> Hash for unsafe fn(A, B, C, D, E) -> Ret[src]

impl Hash for NonZeroI64[src]

impl<Ret, A, B, C, D, E, F, G> Hash for extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret[src]

impl<Ret, A, B, C, D> Hash for unsafe fn(A, B, C, D) -> Ret[src]

impl<Ret, A, B> Hash for unsafe fn(A, B) -> Ret[src]

impl<A, B, C, D, E, F, G> Hash for (A, B, C, D, E, F, G) where
    C: Hash,
    F: Hash,
    E: Hash,
    G: Hash + ?Sized,
    A: Hash,
    B: Hash,
    D: Hash
[src]

impl<A, B, C, D, E, F, G, H, I, J, K> Hash for (A, B, C, D, E, F, G, H, I, J, K) where
    C: Hash,
    F: Hash,
    E: Hash,
    I: Hash,
    G: Hash,
    H: Hash,
    A: Hash,
    B: Hash,
    D: Hash,
    J: Hash,
    K: Hash + ?Sized
[src]

impl Hash for u32[src]

impl<A, B> Hash for (A, B) where
    A: Hash,
    B: Hash + ?Sized
[src]

impl<A, B, C, D, E, F, G, H, I, J> Hash for (A, B, C, D, E, F, G, H, I, J) where
    C: Hash,
    F: Hash,
    E: Hash,
    I: Hash,
    G: Hash,
    H: Hash,
    A: Hash,
    B: Hash,
    D: Hash,
    J: Hash + ?Sized
[src]

impl Hash for PhantomPinned[src]

impl<Ret, A, B, C, D, E, F, G> Hash for fn(A, B, C, D, E, F, G) -> Ret[src]

impl<Ret, A, B, C> Hash for unsafe extern "C" fn(A, B, C, ...) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H, I> Hash for extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret[src]

impl<Ret, A, B, C, D, E, F> Hash for fn(A, B, C, D, E, F) -> Ret[src]

impl Hash for i16[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Hash for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret[src]

impl<Ret, A, B, C, D, E> Hash for fn(A, B, C, D, E) -> Ret[src]

impl Hash for NonZeroIsize[src]

impl<T> Hash for Wrapping<T> where
    T: Hash
[src]

impl Hash for NonZeroI128[src]

impl Hash for u128[src]

impl<Ret, A, B, C, D> Hash for extern "C" fn(A, B, C, D, ...) -> Ret[src]

impl<A, B, C, D, E, F> Hash for (A, B, C, D, E, F) where
    C: Hash,
    F: Hash + ?Sized,
    E: Hash,
    A: Hash,
    B: Hash,
    D: Hash
[src]

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

impl<A, B, C, D, E> Hash for (A, B, C, D, E) where
    C: Hash,
    E: Hash + ?Sized,
    A: Hash,
    B: Hash,
    D: Hash
[src]

impl<Ret, A, B, C, D, E, F, G, H, I> Hash for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret[src]

impl Hash for str[src]

impl<Ret, A, B, C> Hash for extern "C" fn(A, B, C, ...) -> Ret[src]

impl Hash for Ordering[src]

impl<Ret, A, B, C, D, E, F, G, H> Hash for extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Hash for unsafe fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Hash for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H, I> Hash for unsafe fn(A, B, C, D, E, F, G, H, I) -> Ret[src]

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

impl<'_, T> Hash for &'_ mut T where
    T: Hash + ?Sized
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J> Hash for unsafe fn(A, B, C, D, E, F, G, H, I, J) -> Ret[src]

impl Hash for ()[src]

impl<Ret> Hash for fn() -> Ret[src]

impl Hash for i128[src]

impl<T> Hash for *mut T where
    T: ?Sized
[src]

impl Hash for i8[src]

impl Hash for NonZeroU64[src]

impl Hash for NonZeroU8[src]

impl<Ret, A> Hash for unsafe extern "C" fn(A, ...) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H> Hash for unsafe extern "C" fn(A, B, C, D, E, F, G, H) -> Ret[src]

impl<Ret, A, B, C, D, E> Hash for unsafe extern "C" fn(A, B, C, D, E) -> Ret[src]

impl<'a> Hash for Location<'a>[src]

impl<Dyn> Hash for DynMetadata<Dyn> where
    Dyn: ?Sized
[src]

impl Hash for i64[src]

impl<Ret, A> Hash for fn(A) -> Ret[src]

impl<A> Hash for (A,) where
    A: Hash + ?Sized
[src]

impl<Ret, A, B> Hash for fn(A, B) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Hash for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret[src]

impl Hash for u64[src]

impl<Ret, A, B, C, D, E, F, G, H, I> Hash for extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret[src]

impl<Ret, A, B, C, D> Hash for unsafe extern "C" fn(A, B, C, D) -> Ret[src]

impl Hash for isize[src]

impl<Ret> Hash for unsafe fn() -> Ret[src]

impl<Ret> Hash for extern "C" fn() -> Ret[src]

impl Hash for NonZeroU128[src]

impl<Ret> Hash for unsafe extern "C" fn() -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H> Hash for unsafe extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret[src]

impl<Ret, A, B, C, D, E> Hash for extern "C" fn(A, B, C, D, E) -> Ret[src]

impl<Ret, A> Hash for extern "C" fn(A, ...) -> Ret[src]

impl Hash for NonZeroI8[src]

impl<'_, T> Hash for &'_ T where
    T: Hash + ?Sized
[src]

impl Hash for NonZeroI32[src]

impl<Ret, A, B, C, D, E, F> Hash for extern "C" fn(A, B, C, D, E, F) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Hash for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret[src]

impl<Ret, A> Hash for extern "C" fn(A) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Hash for fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret[src]

impl Hash for NonZeroI16[src]

impl<T> Hash for NonNull<T> where
    T: ?Sized
[src]

impl<Ret, A, B, C, D, E, F> Hash for unsafe fn(A, B, C, D, E, F) -> Ret[src]

impl<Ret, A, B> Hash for extern "C" fn(A, B) -> Ret[src]

impl Hash for NonZeroU16[src]

impl<A, B, C, D, E, F, G, H> Hash for (A, B, C, D, E, F, G, H) where
    C: Hash,
    F: Hash,
    E: Hash,
    G: Hash,
    H: Hash + ?Sized,
    A: Hash,
    B: Hash,
    D: Hash
[src]

impl Hash for bool[src]

impl Hash for u16[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Hash for unsafe fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret[src]

impl Hash for usize[src]

impl<A, B, C> Hash for (A, B, C) where
    C: Hash + ?Sized,
    A: Hash,
    B: Hash
[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J> Hash for extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J> Hash for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret[src]

impl<Ret, A> Hash for unsafe extern "C" fn(A) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J> Hash for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret[src]

impl<Ret, A, B, C> Hash for extern "C" fn(A, B, C) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J> Hash for fn(A, B, C, D, E, F, G, H, I, J) -> Ret[src]

impl<T> Hash for Poll<T> where
    T: Hash
[src]

impl<T> Hash for *const T where
    T: ?Sized
[src]

impl<Ret, A, B, C, D, E, F, G, H> Hash for fn(A, B, C, D, E, F, G, H) -> Ret[src]

impl<Ret, A, B, C, D> Hash for unsafe extern "C" fn(A, B, C, D, ...) -> Ret[src]

impl<A, B, C, D, E, F, G, H, I> Hash for (A, B, C, D, E, F, G, H, I) where
    C: Hash,
    F: Hash,
    E: Hash,
    I: Hash + ?Sized,
    G: Hash,
    H: Hash,
    A: Hash,
    B: Hash,
    D: Hash
[src]

impl<Ret, A, B, C, D, E, F> Hash for extern "C" fn(A, B, C, D, E, F, ...) -> Ret[src]

impl<A, B, C, D, E, F, G, H, I, J, K, L> Hash for (A, B, C, D, E, F, G, H, I, J, K, L) where
    C: Hash,
    F: Hash,
    E: Hash,
    I: Hash,
    G: Hash,
    H: Hash,
    A: Hash,
    B: Hash,
    D: Hash,
    J: Hash,
    K: Hash,
    L: Hash + ?Sized
[src]

impl<Ret, A, B, C, D, E, F, G> Hash for extern "C" fn(A, B, C, D, E, F, G) -> Ret[src]

impl<Ret, A, B, C> Hash for unsafe fn(A, B, C) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Hash for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H, I> Hash for fn(A, B, C, D, E, F, G, H, I) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Hash for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret[src]

impl Hash for NonZeroUsize[src]

impl Hash for i32[src]

impl<Ret, A, B, C, D, E, F, G, H> Hash for extern "C" fn(A, B, C, D, E, F, G, H) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H, I> Hash for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G> Hash for unsafe extern "C" fn(A, B, C, D, E, F, G) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G, H, I, J> Hash for extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret[src]

impl<Ret, A, B, C, D, E, F, G> Hash for unsafe extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret[src]

impl<Ret, A, B, C, D, E, F> Hash for unsafe extern "C" fn(A, B, C, D, E, F) -> Ret[src]

impl<T> Hash for Rc<T> where
    T: Hash + ?Sized
[src]

impl<T> Hash for Arc<T> where
    T: Hash + ?Sized
[src]

Implementors

impl Hash for nom::error::ErrorKind[src]

impl Hash for nom::lib::std::cmp::Ordering[src]

impl Hash for Infallible1.44.0[src]

impl Hash for Error[src]

impl Hash for RangeFull[src]

impl Hash for NoneError[src]

impl Hash for String[src]

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

impl<A> Hash for VecDeque<A> where
    A: Hash
[src]

impl<Idx> Hash for Range<Idx> where
    Idx: Hash
[src]

impl<Idx> Hash for RangeFrom<Idx> where
    Idx: Hash
[src]

impl<Idx> Hash for RangeInclusive<Idx> where
    Idx: Hash
1.26.0[src]

impl<Idx> Hash for RangeTo<Idx> where
    Idx: Hash
[src]

impl<Idx> Hash for RangeToInclusive<Idx> where
    Idx: Hash
1.26.0[src]

impl<K, V> Hash for BTreeMap<K, V> where
    K: Hash,
    V: Hash
[src]

impl<T> Hash for Bound<T> where
    T: Hash
1.17.0[src]

impl<T> Hash for Option<T> where
    T: Hash
[src]

impl<T> Hash for Reverse<T> where
    T: Hash
1.19.0[src]

impl<T> Hash for BTreeSet<T> where
    T: Hash
[src]

impl<T> Hash for LinkedList<T> where
    T: Hash
[src]

impl<T> Hash for Discriminant<T>1.21.0[src]

impl<T> Hash for ManuallyDrop<T> where
    T: Hash + ?Sized
1.20.0[src]

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

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

impl<T, E> Hash for Result<T, E> where
    E: Hash,
    T: Hash
[src]

impl<Y, R> Hash for GeneratorState<Y, R> where
    R: Hash,
    Y: Hash
[src]

impl Hash for Match

impl<N> Hash for Deg<N> where
    N: Hash

impl<N> Hash for Rad<N> where
    N: Hash

impl Hash for Error

impl Hash for PodCastError

impl Hash for BigEndian

impl Hash for LittleEndian

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

impl Hash for FixedOffset

impl Hash for NaiveDate

impl Hash for NaiveDateTime

impl Hash for NaiveTime

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

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

impl Hash for Weekday

impl Hash for Month

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

impl Hash for IdentString

impl Hash for Ignored

impl Hash for Compression

impl Hash for SpecialOptions

impl Hash for CompressionOptions

impl Hash for MatchingType

impl Hash for Arrow

impl Hash for Fill

impl Hash for Side

impl Hash for ArrowShape

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

impl<E: Hash> Hash for Compat<E>

impl Hash for FixedBitSet

impl Hash for FT_Pixel_Mode_

impl Hash for FT_Glyph_Format_

impl Hash for _bindgen_ty_1

impl Hash for _bindgen_ty_2

impl Hash for FT_Encoding_

impl Hash for FT_Size_Request_Type_

impl Hash for FT_Render_Mode_

impl Hash for FT_Kerning_Mode_

impl Hash for FT_LcdFilter_

impl Hash for FT_Sfnt_Tag_

impl Hash for FT_TrueTypeEngineType_

impl Hash for FT_Orientation_

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

impl Hash for Index

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

impl Hash for AnyExtension

impl Hash for Format

impl Hash for Encoding

impl Hash for LineEncoding

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 RangeListsOffset<T>

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

impl Hash for DebugTypeSignature

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 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 DwVirtuality

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 RunTimeEndian

impl Hash for LittleEndian

impl Hash for BigEndian

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

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 Action

impl Hash for Key

impl Hash for MouseButton

impl Hash for Error

impl Hash for CursorMode

impl Hash for StandardCursor

impl Hash for ContextReleaseBehavior

impl Hash for ContextCreationApi

impl Hash for SwapInterval

impl Hash for InitError

impl Hash for InitHint

impl Hash for MonitorEvent

impl Hash for WindowHint

impl Hash for ClientApiHint

impl Hash for ContextRobustnessHint

impl Hash for OpenGlProfileHint

impl Hash for Modifiers

impl Hash for JoystickId

impl Hash for GamepadButton

impl Hash for GamepadAxis

impl Hash for JoystickHats

impl Hash for JoystickEvent

impl Hash for ShaderPrecision

impl Hash for Format

impl Hash for LoadDataFormat

impl Hash for DataFormat

impl Hash for CompressedDataFormat

impl Hash for Component

impl Hash for Swizzles

impl Hash for Format

impl Hash for MapReadFlags

impl Hash for MapWriteFlags

impl Hash for MapReadWriteFlags

impl Hash for ColorAttachmentId

impl Hash for DepthAttachmentId

impl Hash for Type

impl Hash for Format

impl Hash for MatFormat

impl Hash for Visit

impl Hash for UnsupportedErrorKind

impl Hash for ParameterErrorKind

impl Hash for LimitErrorKind

impl Hash for ImageFormatHint

impl Hash for Rect

impl Hash for SampleLayout

impl Hash for Error

impl Hash for NormalForm

impl<P: Hash + Pixel, Container: Hash> Hash for ImageBuffer<P, Container>

impl Hash for ColorType

impl Hash for ExtendedColorType

impl<T: Hash + Primitive> Hash for Rgb<T>

impl<T: Hash + Primitive> Hash for Bgr<T>

impl<T: Hash + Primitive> Hash for Luma<T>

impl<T: Hash + Primitive> Hash for Rgba<T>

impl<T: Hash + Primitive> Hash for Bgra<T>

impl<T: Hash + Primitive> Hash for LumaA<T>

impl Hash for ImageFormat

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

impl Hash for Level

impl Hash for LevelFilter

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

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

impl Hash for CompressionStrategy

impl Hash for TDEFLFlush

impl Hash for TDEFLStatus

impl Hash for CompressionLevel

impl Hash for TINFLStatus

impl Hash for MZFlush

impl Hash for MZStatus

impl Hash for MZError

impl Hash for DataFormat

impl Hash for StreamResult

impl Hash for FloatDuration

impl Hash for TimeStats

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

impl Hash for U1

impl Hash for U0

impl Hash for U2

impl Hash for U3

impl Hash for U4

impl Hash for U5

impl Hash for U6

impl Hash for U7

impl Hash for U8

impl Hash for U9

impl Hash for U10

impl Hash for U11

impl Hash for U12

impl Hash for U13

impl Hash for U14

impl Hash for U15

impl Hash for U16

impl Hash for U17

impl Hash for U18

impl Hash for U19

impl Hash for U20

impl Hash for U21

impl Hash for U22

impl Hash for U23

impl Hash for U24

impl Hash for U25

impl Hash for U26

impl Hash for U27

impl Hash for U28

impl Hash for U29

impl Hash for U30

impl Hash for U31

impl Hash for U32

impl Hash for U33

impl Hash for U34

impl Hash for U35

impl Hash for U36

impl Hash for U37

impl Hash for U38

impl Hash for U39

impl Hash for U40

impl Hash for U41

impl Hash for U42

impl Hash for U43

impl Hash for U44

impl Hash for U45

impl Hash for U46

impl Hash for U47

impl Hash for U48

impl Hash for U49

impl Hash for U50

impl Hash for U51

impl Hash for U52

impl Hash for U53

impl Hash for U54

impl Hash for U55

impl Hash for U56

impl Hash for U57

impl Hash for U58

impl Hash for U59

impl Hash for U60

impl Hash for U61

impl Hash for U62

impl Hash for U63

impl Hash for U64

impl Hash for U65

impl Hash for U66

impl Hash for U67

impl Hash for U68

impl Hash for U69

impl Hash for U70

impl Hash for U71

impl Hash for U72

impl Hash for U73

impl Hash for U74

impl Hash for U75

impl Hash for U76

impl Hash for U77

impl Hash for U78

impl Hash for U79

impl Hash for U80

impl Hash for U81

impl Hash for U82

impl Hash for U83

impl Hash for U84

impl Hash for U85

impl Hash for U86

impl Hash for U87

impl Hash for U88

impl Hash for U89

impl Hash for U90

impl Hash for U91

impl Hash for U92

impl Hash for U93

impl Hash for U94

impl Hash for U95

impl Hash for U96

impl Hash for U97

impl Hash for U98

impl Hash for U99

impl Hash for U100

impl Hash for U101

impl Hash for U102

impl Hash for U103

impl Hash for U104

impl Hash for U105

impl Hash for U106

impl Hash for U107

impl Hash for U108

impl Hash for U109

impl Hash for U110

impl Hash for U111

impl Hash for U112

impl Hash for U113

impl Hash for U114

impl Hash for U115

impl Hash for U116

impl Hash for U117

impl Hash for U118

impl Hash for U119

impl Hash for U120

impl Hash for U121

impl Hash for U122

impl Hash for U123

impl Hash for U124

impl Hash for U125

impl Hash for U126

impl Hash for U127

impl<N, R, C> Hash for ArrayStorage<N, R, C> where
    N: Hash,
    R: DimName,
    C: DimName,
    R::Value: Mul<C::Value>,
    Prod<R::Value, C::Value>: ArrayLength<N>, 

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

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

impl<N: Scalar + Hash, D: DimName + Hash> Hash for Point<N, D> where
    DefaultAllocator: Allocator<N, D>,
    <DefaultAllocator as Allocator<N, D>>::Buffer: Hash

impl<N: Scalar + Hash, D: DimName + Hash> Hash for Rotation<N, D> where
    DefaultAllocator: Allocator<N, D, D>,
    <DefaultAllocator as Allocator<N, D, D>>::Buffer: Hash

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

impl<N: Scalar + Hash, D: DimName + Hash> Hash for Translation<N, D> where
    DefaultAllocator: Allocator<N, D>,
    Owned<N, D>: Hash

impl<N: Scalar + Hash, D: DimName + Hash, R: Hash> Hash for Isometry<N, D, R> where
    DefaultAllocator: Allocator<N, D>,
    Owned<N, D>: Hash

impl<N: Scalar + Hash, D: DimName + Hash, R: Hash> Hash for Similarity<N, D, R> where
    DefaultAllocator: Allocator<N, D>,
    Owned<N, D>: Hash

impl Hash for TGeneral

impl Hash for TProjective

impl Hash for TAffine

impl Hash for BVTNodeId

impl Hash for DBVTLeafId

impl Hash for DBVTNodeId

impl Hash for BroadPhaseProxyHandle

impl<Handle: Hash> Hash for ContactEvent<Handle>

impl Hash for CollisionObjectUpdateFlags

impl Hash for CollisionObjectSlabHandle

impl Hash for ContactId

impl Hash for FeatureId

impl Hash for DeformationsType

impl Hash for HeightFieldCellStatus

impl<T: AsBytes> Hash for HashablePartialEq<T>

impl<T: Hash + PartialOrd> Hash for SortedPair<T>

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

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

impl Hash for U128

impl Hash for U160

impl Hash for U224

impl Hash for U256

impl Hash for U384

impl Hash for U512

impl Hash for U520

impl Hash for U1024

impl Hash for U2048

impl Hash for U4096

impl Hash for Architecture

impl Hash for AddressSize

impl Hash for BinaryFormat

impl Hash for Endianness

impl Hash for LittleEndian

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 SectionIndex

impl Hash for SymbolIndex

impl Hash for SymbolSection

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

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

impl Hash for RelocationTarget

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

impl Hash for CompressionFormat

impl<C: Hash> Hash for Matrix<C>

impl Hash for Time

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

impl Hash for Ident

impl Hash for XlibHandle

impl Hash for XcbHandle

impl Hash for WaylandHandle

impl Hash for RawWindowHandle

impl Hash for Rect

impl Hash for Config

impl Hash for RootMotionRemove

impl Hash for Shader

impl Hash for BoxFlags

impl<T> Hash for Parameter<T> where
    T: Hash

impl Hash for TextureRef

impl Hash for CubemapRef

impl Hash for SamplerRef

impl Hash for TextureSampler

impl Hash for CubemapSampler

impl Hash for TextureCreationFlags

impl Hash for MaterialType

impl Hash for BlendFactor

impl Hash for ColorBlendFactor

impl Hash for AlphaBlendFactor

impl Hash for AlphaType

impl Hash for MaterialRef

impl Hash for Face

impl Hash for ShaderPrecision

impl<T: Hash + BaseNum> Hash for Rect<T>

impl Hash for SourcePath

impl Hash for PostFragment

impl Hash for UBOBindingPoints

impl Hash for ProgramRef

impl Hash for GpuGeometryRef

impl Hash for GpuDebugGeometryRef

impl Hash for GeomToGpuGeomRef

impl Hash for LightingSampler

impl Hash for VaoId

impl Hash for BoneFlags

impl Hash for GeometryRef

impl Hash for LightInfo

impl Hash for ShaderPrecision

impl<E> Hash for EnumSet<E>

impl Hash for KeyModifiers

impl Hash for LibraryId

impl Hash for ObjectId

impl Hash for Flags

impl Hash for Flags

impl Hash for Component

impl Hash for DriverTargetFlags

impl Hash for DriverVarFlag

impl Hash for ArmatureDeformFlag

impl Hash for Flag

impl Hash for Flags

impl Hash for BlockFlags

impl Hash for Entity

impl Hash for SystemId

impl Hash for Identifier

impl Hash for Version

impl Hash for VersionReq

impl Hash for KeyData

impl Hash for DefaultKey

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

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 AngleBracketedGenericArguments

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 BoundLifetimes

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 ExprAssignOp

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 ExprContinue

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 ExprMethodCall

impl Hash for ExprParen

impl Hash for ExprPath

impl Hash for ExprRange

impl Hash for ExprReference

impl Hash for ExprRepeat

impl Hash for ExprReturn

impl Hash for ExprStruct

impl Hash for ExprTry

impl Hash for ExprTryBlock

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 FieldsUnnamed

impl Hash for File

impl Hash for FnArg

impl Hash for ForeignItem

impl Hash for ForeignItemFn

impl Hash for ForeignItemMacro

impl Hash for ForeignItemStatic

impl Hash for ForeignItemType

impl Hash for GenericArgument

impl Hash for GenericMethodArgument

impl Hash for GenericParam

impl Hash for Generics

impl Hash for ImplItem

impl Hash for ImplItemConst

impl Hash for ImplItemMacro

impl Hash for ImplItemMethod

impl Hash for ImplItemType

impl Hash for Item

impl Hash for ItemConst

impl Hash for ItemEnum

impl Hash for ItemExternCrate

impl Hash for ItemFn

impl Hash for ItemForeignMod

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 ItemTraitAlias

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 MacroDelimiter

impl Hash for Meta

impl Hash for MetaList

impl Hash for MetaNameValue

impl Hash for MethodTurbofish

impl Hash for NestedMeta

impl Hash for ParenthesizedGenericArguments

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 PatReference

impl Hash for PatRest

impl Hash for PatSlice

impl Hash for PatStruct

impl Hash for PatTuple

impl Hash for PatTupleStruct

impl Hash for PatType

impl Hash for PatWild

impl Hash for Path

impl Hash for PathArguments

impl Hash for PathSegment

impl Hash for PredicateEq

impl Hash for PredicateLifetime

impl Hash for PredicateType

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 TraitBoundModifier

impl Hash for TraitItem

impl Hash for TraitItemConst

impl Hash for TraitItemMacro

impl Hash for TraitItemMethod

impl Hash for TraitItemType

impl Hash for Type

impl Hash for TypeArray

impl Hash for TypeBareFn

impl Hash for TypeGroup

impl Hash for TypeImplTrait

impl Hash for TypeInfer

impl Hash for TypeMacro

impl Hash for TypeNever

impl Hash for TypeParam

impl Hash for TypeParamBound

impl Hash for TypeParen

impl Hash for TypePath

impl Hash for TypePtr

impl Hash for TypeReference

impl Hash for TypeSlice

impl Hash for TypeTraitObject

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 VisRestricted

impl Hash for Visibility

impl Hash for WhereClause

impl Hash for WherePredicate

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 InflateError

impl Hash for TiffUnsupportedError

impl Hash for Tag

impl Hash for Type

impl Hash for CompressionMethod

impl Hash for PhotometricInterpretation

impl Hash for PlanarConfiguration

impl Hash for Predictor

impl Hash for ResolutionUnit

impl Hash for SampleFormat

impl Hash for ColorType

impl Hash for Duration

impl Hash for Timespec

impl Hash for Tm

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

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