# 1.0.0[−][src]Trait std::hash::Hash

    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,
        { ... }
    }

A hashable type.

Types implementing `Hash` are able to be `hash`ed 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,
    }Run

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);
        }
    }Run

## `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

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

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

Loading content...

## Provided methods

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

Feeds a slice of this type into the given `Hasher`.

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

Loading content...

## Implementors

### `impl Hash for std::cmp::Ordering`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for ErrorKind`[src]

#### `fn hash<__H: Hasher>(&self, state: &mut __H)`[src]

### `impl Hash for IpAddr`[src]

#### `fn hash<__H: Hasher>(&self, state: &mut __H)`[src]

### `impl Hash for Ipv6MulticastScope`[src]

#### `fn hash<__H: Hasher>(&self, state: &mut __H)`[src]

### `impl Hash for SocketAddr`[src]

#### `fn hash<__H: Hasher>(&self, state: &mut __H)`[src]

### `impl Hash for std::sync::atomic::Ordering`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for bool`[src]

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

### `impl Hash for char`[src]

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

### `impl Hash for i128`[src]

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

#### `fn hash_slice<H>(data: &[i128], state: &mut H) where
H: Hasher,` [src]

### `impl Hash for i16`[src]

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

#### `fn hash_slice<H>(data: &[i16], state: &mut H) where
H: Hasher,` [src]

### `impl Hash for i32`[src]

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

#### `fn hash_slice<H>(data: &[i32], state: &mut H) where
H: Hasher,` [src]

### `impl Hash for i64`[src]

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

#### `fn hash_slice<H>(data: &[i64], state: &mut H) where
H: Hasher,` [src]

### `impl Hash for i8`[src]

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

#### `fn hash_slice<H>(data: &[i8], state: &mut H) where
H: Hasher,` [src]

### `impl Hash for isize`[src]

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

#### `fn hash_slice<H>(data: &[isize], state: &mut H) where
H: Hasher,` [src]

### `impl Hash for !`[src]

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

### `impl Hash for str`[src]

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

### `impl Hash for u128`[src]

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

#### `fn hash_slice<H>(data: &[u128], state: &mut H) where
H: Hasher,` [src]

### `impl Hash for u16`[src]

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

#### `fn hash_slice<H>(data: &[u16], state: &mut H) where
H: Hasher,` [src]

### `impl Hash for u32`[src]

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

#### `fn hash_slice<H>(data: &[u32], state: &mut H) where
H: Hasher,` [src]

### `impl Hash for u64`[src]

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

#### `fn hash_slice<H>(data: &[u64], state: &mut H) where
H: Hasher,` [src]

### `impl Hash for u8`[src]

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

#### `fn hash_slice<H>(data: &[u8], state: &mut H) where
H: Hasher,` [src]

### `impl Hash for ()`[src]

#### `fn hash<H>(&self, _state: &mut H) where
H: Hasher,` [src]

### `impl Hash for usize`[src]

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

#### `fn hash_slice<H>(data: &[usize], state: &mut H) where
H: Hasher,` [src]

### `impl Hash for TypeId`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for CStr`[src]

#### `fn hash<__H: Hasher>(&self, state: &mut __H)`[src]

### `impl Hash for CString`[src]

#### `fn hash<__H: Hasher>(&self, state: &mut __H)`[src]

### `impl Hash for OsStr`[src]

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

### `impl Hash for OsString`[src]

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

### `impl Hash for Error`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for FileType`[src]

#### `fn hash<__H: Hasher>(&self, state: &mut __H)`[src]

### `impl Hash for PhantomPinned`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for Ipv4Addr`[src]

#### `fn hash<H: Hasher>(&self, s: &mut H)`[src]

### `impl Hash for Ipv6Addr`[src]

#### `fn hash<H: Hasher>(&self, s: &mut H)`[src]

### `impl Hash for SocketAddrV4`[src]

#### `fn hash<H: Hasher>(&self, s: &mut H)`[src]

### `impl Hash for SocketAddrV6`[src]

#### `fn hash<H: Hasher>(&self, s: &mut H)`[src]

### `impl Hash for NonZeroI128`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for NonZeroI16`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for NonZeroI32`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for NonZeroI64`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for NonZeroI8`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for NonZeroIsize`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for NonZeroU128`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for NonZeroU16`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for NonZeroU32`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for NonZeroU64`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for NonZeroU8`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for NonZeroUsize`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for RangeFull`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for NoneError`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for Path`[src]

#### `fn hash<H: Hasher>(&self, h: &mut H)`[src]

### `impl Hash for PathBuf`[src]

#### `fn hash<H: Hasher>(&self, h: &mut H)`[src]

### `impl Hash for String`[src]

#### `fn hash<H>(&self, hasher: &mut H) where
H: Hasher,` [src]

### `impl Hash for ThreadId`[src]

#### `fn hash<__H: Hasher>(&self, state: &mut __H)`[src]

### `impl Hash for Duration`[src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl Hash for Instant`[src]

#### `fn hash<__H: Hasher>(&self, state: &mut __H)`[src]

### `impl Hash for SystemTime`[src]

#### `fn hash<__H: Hasher>(&self, state: &mut __H)`[src]

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

#### `fn hash<H: Hasher>(&self, h: &mut H)`[src]

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

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

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

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

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

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

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

#### `fn hash<__H: Hasher>(&self, state: &mut __H)`[src]

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

#### `fn hash<__H: Hasher>(&self, state: &mut __H)`[src]

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

#### `fn hash<S>(&self, state: &mut S) where
S: Hasher,` [src]

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

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

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

#### `fn hash<S>(&self, state: &mut S) where
S: Hasher,` [src]

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

#### `fn hash<S>(&self, state: &mut S) where
S: Hasher,` [src]

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

#### `fn hash<S>(&self, state: &mut S) where
S: Hasher,` [src]

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

#### `fn hash<S>(&self, state: &mut S) where
S: Hasher,` [src]

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

#### `fn hash<S>(&self, state: &mut S) where
S: Hasher,` [src]

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

#### `fn hash<S>(&self, state: &mut S) where
S: Hasher,` [src]

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

#### `fn hash<S>(&self, state: &mut S) where
S: Hasher,` [src]

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

#### `fn hash<S>(&self, state: &mut S) where
S: Hasher,` [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
A: Hash,
B: Hash,
C: Hash,
D: Hash,
E: Hash,
F: Hash,
G: Hash,
H: Hash,
I: Hash,
J: Hash + ?Sized,` [src]

#### `fn hash<S>(&self, state: &mut S) where
S: Hasher,` [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
A: Hash,
B: Hash,
C: Hash,
D: Hash,
E: Hash,
F: Hash,
G: Hash,
H: Hash,
I: Hash,
J: Hash,
K: Hash + ?Sized,` [src]

#### `fn hash<S>(&self, state: &mut S) where
S: Hasher,` [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
A: Hash,
B: Hash,
C: Hash,
D: Hash,
E: Hash,
F: Hash,
G: Hash,
H: Hash,
I: Hash,
J: Hash,
K: Hash,
L: Hash + ?Sized,` [src]

#### `fn hash<S>(&self, state: &mut S) where
S: Hasher,` [src]

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

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

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

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl<Idx> Hash for RangeInclusive<Idx> where
Idx: Hash,` [src]

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

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

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

### `impl<Idx> Hash for RangeToInclusive<Idx> where
Idx: Hash,` [src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

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

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

### `impl<P> Hash for Pin<P> where
P: Hash,` [src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

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

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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, VaListImpl) -> Ret`[src]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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, VaListImpl) -> Ret`[src]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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, VaListImpl) -> Ret`[src]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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, VaListImpl) -> Ret`[src]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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, VaListImpl) -> Ret`[src]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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, VaListImpl) -> Ret`[src]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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, VaListImpl) -> Ret`[src]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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, VaListImpl) -> Ret`[src]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [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, VaListImpl) -> Ret`[src]

#### `fn hash<HH>(&self, state: &mut HH) where
HH: Hasher,` [src]

### `impl<T> Hash for Bound<T> where
T: Hash,` [src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

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

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

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

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

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

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

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

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

### `impl<T> Hash for [T] where
T: Hash,` [src]

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

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

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

### `impl<T> Hash for Reverse<T> where
T: Hash,` [src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

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

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

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

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

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

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

### `impl<T> Hash for Discriminant<T>`[src]

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

### `impl<T> Hash for ManuallyDrop<T> where
T: Hash + ?Sized,` [src]

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

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

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

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

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

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

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

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

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

### `impl<T> Hash for Vec<T> where
T: Hash,` [src]

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

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

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

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

#### `fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,` [src]

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

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

Loading content...

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g., `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g., `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g., `str,u8` or `String,struct:Vec,test`)