1.0.0[−][src]Trait af_lib::prelude::Hash
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, }
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
Loading content...Provided methods
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
Implementations on Foreign Types
impl Hash for SystemTime
[src]
impl Hash for Ipv6Addr
[src]
impl Hash for SocketAddrV6
[src]
impl Hash for Path
[src]
impl Hash for SocketAddr
[src]
impl Hash for PathBuf
[src]
impl<'a> Hash for Component<'a>
[src]
impl Hash for Instant
[src]
impl Hash for Ipv4Addr
[src]
impl Hash for ThreadId
[src]
impl Hash for ErrorKind
[src]
impl Hash for FileType
[src]
impl Hash for CStr
[src]
impl Hash for CString
[src]
impl Hash for UCred
[src]
impl Hash for Ipv6MulticastScope
[src]
impl Hash for OsStr
[src]
impl Hash for OsString
[src]
impl Hash for IpAddr
[src]
impl Hash for SocketAddrV4
[src]
impl<'_> Hash for PrefixComponent<'_>
[src]
impl<'a> Hash for Prefix<'a>
[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<Ret, A, B> Hash for extern "C" fn(A, B) -> Ret
[src]
impl<A, B, C> Hash for (A, B, C) where
C: Hash + ?Sized,
B: Hash,
A: Hash,
[src]
C: Hash + ?Sized,
B: Hash,
A: Hash,
impl Hash for bool
[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 u32
[src]
pub fn hash<H>(&self, state: &mut H) where
H: Hasher,
[src]
H: Hasher,
pub fn hash_slice<H>(data: &[u32], state: &mut H) where
H: Hasher,
[src]
H: Hasher,
impl<Ret, A, B> Hash for extern "C" fn(A, B, ...) -> Ret
[src]
impl<Ret, A, B, C, D, E> Hash for unsafe extern "C" fn(A, B, C, D, E) -> Ret
[src]
impl<T> Hash for *mut T where
T: ?Sized,
[src]
T: ?Sized,
impl<Ret, A> Hash for extern "C" fn(A) -> Ret
[src]
impl<A, B> Hash for (A, B) where
B: Hash + ?Sized,
A: Hash,
[src]
B: Hash + ?Sized,
A: Hash,
impl<T> Hash for Wrapping<T> where
T: Hash,
[src]
T: Hash,
impl<Ret, A, B, C, D, E, F> Hash for extern "C" fn(A, B, C, D, E, F, ...) -> Ret
[src]
impl Hash for u8
[src]
pub fn hash<H>(&self, state: &mut H) where
H: Hasher,
[src]
H: Hasher,
pub fn hash_slice<H>(data: &[u8], state: &mut H) where
H: Hasher,
[src]
H: Hasher,
impl Hash for usize
[src]
pub fn hash<H>(&self, state: &mut H) where
H: Hasher,
[src]
H: Hasher,
pub fn hash_slice<H>(data: &[usize], state: &mut H) where
H: Hasher,
[src]
H: Hasher,
impl<Ret, A, B, C> Hash for fn(A, B, C) -> Ret
[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> Hash for 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<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<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,
E: Hash,
B: Hash,
L: Hash + ?Sized,
A: Hash,
D: Hash,
F: Hash,
G: Hash,
I: Hash,
K: Hash,
J: Hash,
H: Hash,
[src]
C: Hash,
E: Hash,
B: Hash,
L: Hash + ?Sized,
A: Hash,
D: Hash,
F: Hash,
G: Hash,
I: Hash,
K: Hash,
J: Hash,
H: Hash,
impl<T> Hash for [T] where
T: Hash,
[src]
T: Hash,
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, 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> Hash for unsafe extern "C" fn(A, B, C, D, ...) -> Ret
[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 fn(A, B, C, D) -> Ret
[src]
impl Hash for str
[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> Hash for unsafe extern "C" fn(A, B, C, D, E, F, ...) -> Ret
[src]
impl<Ret, A, B, C> Hash for extern "C" fn(A, B, C) -> Ret
[src]
impl<T, E> Hash for Result<T, E> where
E: Hash,
T: Hash,
[src]
E: Hash,
T: Hash,
impl Hash for ()
[src]
impl<A, B, C, D, E, F, G> Hash for (A, B, C, D, E, F, G) where
C: Hash,
E: Hash,
B: Hash,
A: Hash,
D: Hash,
F: Hash,
G: Hash + ?Sized,
[src]
C: Hash,
E: Hash,
B: Hash,
A: Hash,
D: Hash,
F: Hash,
G: Hash + ?Sized,
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<A, B, C, D> Hash for (A, B, C, D) where
C: Hash,
B: Hash,
A: Hash,
D: Hash + ?Sized,
[src]
C: Hash,
B: Hash,
A: Hash,
D: Hash + ?Sized,
impl<Ret, A, B, C, D, E, F> Hash for unsafe fn(A, B, C, D, E, F) -> Ret
[src]
impl<A, B, C, D, E, F> Hash for (A, B, C, D, E, F) where
C: Hash,
E: Hash,
B: Hash,
A: Hash,
D: Hash,
F: Hash + ?Sized,
[src]
C: Hash,
E: Hash,
B: Hash,
A: Hash,
D: Hash,
F: Hash + ?Sized,
impl Hash for isize
[src]
pub fn hash<H>(&self, state: &mut H) where
H: Hasher,
[src]
H: Hasher,
pub fn hash_slice<H>(data: &[isize], state: &mut H) where
H: Hasher,
[src]
H: Hasher,
impl<T> Hash for *const T where
T: ?Sized,
[src]
T: ?Sized,
impl<A, B, C, D, E, F, G, H, I> Hash for (A, B, C, D, E, F, G, H, I) where
C: Hash,
E: Hash,
B: Hash,
A: Hash,
D: Hash,
F: Hash,
G: Hash,
I: Hash + ?Sized,
H: Hash,
[src]
C: Hash,
E: Hash,
B: Hash,
A: Hash,
D: Hash,
F: Hash,
G: Hash,
I: Hash + ?Sized,
H: Hash,
impl<Ret, A> Hash for unsafe extern "C" fn(A, ...) -> Ret
[src]
impl Hash for Ordering
[src]
impl<Ret> Hash for extern "C" fn() -> 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, 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> Hash for unsafe fn(A, B, C, D) -> 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, 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> Hash for extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret
[src]
impl Hash for !
[src]
impl<Ret, A> Hash for unsafe extern "C" fn(A) -> 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, L> Hash for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
[src]
impl<Ret, A, B> Hash for fn(A, B) -> Ret
[src]
impl<Ret, A, B, C, D, E> Hash for extern "C" fn(A, B, C, D, E, ...) -> Ret
[src]
impl Hash for NonZeroI16
[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,
E: Hash,
B: Hash,
A: Hash,
D: Hash,
F: Hash,
G: Hash,
I: Hash,
K: Hash + ?Sized,
J: Hash,
H: Hash,
[src]
C: Hash,
E: Hash,
B: Hash,
A: Hash,
D: Hash,
F: Hash,
G: Hash,
I: Hash,
K: Hash + ?Sized,
J: Hash,
H: Hash,
impl<Ret, A, B, C, D, E, F> Hash for fn(A, B, C, D, E, F) -> Ret
[src]
impl Hash for i32
[src]
pub fn hash<H>(&self, state: &mut H) where
H: Hasher,
[src]
H: Hasher,
pub fn hash_slice<H>(data: &[i32], state: &mut H) where
H: Hasher,
[src]
H: Hasher,
impl<Ret, A, B, C, D> Hash for extern "C" fn(A, B, C, D) -> Ret
[src]
impl<Ret, A> Hash for unsafe fn(A) -> Ret
[src]
impl<Ret, A, B> Hash for unsafe extern "C" fn(A, B, ...) -> Ret
[src]
impl<Ret, A, B, C, D, E> Hash for unsafe fn(A, B, C, D, E) -> Ret
[src]
impl Hash for PhantomPinned
[src]
impl Hash for NonZeroI8
[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 NonZeroI64
[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 Hash for i128
[src]
pub fn hash<H>(&self, state: &mut H) where
H: Hasher,
[src]
H: Hasher,
pub fn hash_slice<H>(data: &[i128], state: &mut H) where
H: Hasher,
[src]
H: Hasher,
impl<A> Hash for (A,) where
A: Hash + ?Sized,
[src]
A: Hash + ?Sized,
impl<Ret, A, B, C, D, E> Hash for 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 extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret
[src]
impl Hash for i8
[src]
pub fn hash<H>(&self, state: &mut H) where
H: Hasher,
[src]
H: Hasher,
pub fn hash_slice<H>(data: &[i8], state: &mut H) where
H: Hasher,
[src]
H: Hasher,
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 Hash for char
[src]
impl Hash for NonZeroU8
[src]
impl<Ret, A, B, C, D> Hash for unsafe extern "C" fn(A, B, C, D) -> Ret
[src]
impl Hash for NonZeroUsize
[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> Hash for fn(A) -> Ret
[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<Ret, A, B> Hash for unsafe extern "C" fn(A, B) -> Ret
[src]
impl<A, B, C, D, E> Hash for (A, B, C, D, E) where
C: Hash,
E: Hash + ?Sized,
B: Hash,
A: Hash,
D: Hash,
[src]
C: Hash,
E: Hash + ?Sized,
B: Hash,
A: Hash,
D: Hash,
impl<Ret, A, B> Hash for unsafe fn(A, B) -> Ret
[src]
impl Hash for Duration
[src]
impl Hash for NonZeroU16
[src]
impl<T> Hash for Option<T> where
T: Hash,
[src]
T: Hash,
impl Hash for NoneError
[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 Hash for u64
[src]
pub fn hash<H>(&self, state: &mut H) where
H: Hasher,
[src]
H: Hasher,
pub fn hash_slice<H>(data: &[u64], state: &mut H) where
H: Hasher,
[src]
H: Hasher,
impl Hash for NonZeroI128
[src]
impl Hash for NonZeroU128
[src]
impl<Ret> Hash for unsafe fn() -> Ret
[src]
impl<Ret, A, B, C, D, E> Hash for fn(A, B, C, D, E) -> Ret
[src]
impl Hash for u128
[src]
pub fn hash<H>(&self, state: &mut H) where
H: Hasher,
[src]
H: Hasher,
pub fn hash_slice<H>(data: &[u128], state: &mut H) where
H: Hasher,
[src]
H: Hasher,
impl Hash for NonZeroU64
[src]
impl Hash for NonZeroIsize
[src]
impl<Ret, A, B, C> Hash for unsafe extern "C" fn(A, B, C) -> 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> Hash for fn() -> Ret
[src]
impl<'_, T> Hash for &'_ T where
T: Hash + ?Sized,
[src]
T: Hash + ?Sized,
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<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,
E: Hash,
B: Hash,
A: Hash,
D: Hash,
F: Hash,
G: Hash,
I: Hash,
J: Hash + ?Sized,
H: Hash,
[src]
C: Hash,
E: Hash,
B: Hash,
A: Hash,
D: Hash,
F: Hash,
G: Hash,
I: Hash,
J: Hash + ?Sized,
H: Hash,
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, E> Hash for unsafe extern "C" fn(A, B, C, D, E, ...) -> Ret
[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> Hash for unsafe fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
[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> Hash for unsafe extern "C" fn(A, B, C, D, E, F, G, H) -> Ret
[src]
impl<A, B, C, D, E, F, G, H> Hash for (A, B, C, D, E, F, G, H) where
C: Hash,
E: Hash,
B: Hash,
A: Hash,
D: Hash,
F: Hash,
G: Hash,
H: Hash + ?Sized,
[src]
C: Hash,
E: Hash,
B: Hash,
A: Hash,
D: Hash,
F: Hash,
G: Hash,
H: Hash + ?Sized,
impl<Ret> Hash for unsafe extern "C" fn() -> 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, 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 i64
[src]
pub fn hash<H>(&self, state: &mut H) where
H: Hasher,
[src]
H: Hasher,
pub fn hash_slice<H>(data: &[i64], state: &mut H) where
H: Hasher,
[src]
H: Hasher,
impl<Ret, A, B, C, D> Hash for extern "C" fn(A, B, C, D, ...) -> Ret
[src]
impl Hash for NonZeroI32
[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 Hash for NonZeroU32
[src]
impl Hash for i16
[src]
pub fn hash<H>(&self, state: &mut H) where
H: Hasher,
[src]
H: Hasher,
pub fn hash_slice<H>(data: &[i16], state: &mut H) where
H: Hasher,
[src]
H: Hasher,
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<'_, T> Hash for &'_ mut T where
T: Hash + ?Sized,
[src]
T: Hash + ?Sized,
impl<Ret, A> Hash for extern "C" fn(A, ...) -> 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<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 Hash for u16
[src]
pub fn hash<H>(&self, state: &mut H) where
H: Hasher,
[src]
H: Hasher,
pub fn hash_slice<H>(data: &[u16], state: &mut H) where
H: Hasher,
[src]
H: Hasher,
impl<T, const N: usize> Hash for [T; N] where
T: Hash,
[src]
T: Hash,
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> Hash for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret
[src]
impl<A> Hash for VecDeque<A> where
A: Hash,
[src]
A: Hash,
impl Hash for String
[src]
impl<T, A> Hash for Vec<T, A> where
T: Hash,
A: Allocator,
[src]
T: Hash,
A: Allocator,
impl<T> Hash for LinkedList<T> where
T: Hash,
[src]
T: Hash,
impl<K, V> Hash for BTreeMap<K, V> where
V: Hash,
K: Hash,
[src]
V: Hash,
K: Hash,
impl<T> Hash for BTreeSet<T> where
T: Hash,
[src]
T: Hash,
impl<T, A> Hash for Box<T, A> where
T: Hash + ?Sized,
A: Allocator,
[src]
T: Hash + ?Sized,
A: Allocator,
impl<T> Hash for CachePadded<T> where
T: Hash,
T: Hash,
impl<T> Hash for AssertAsync<T> where
T: Hash,
T: Hash,
impl<A> Hash for SmallVec<A> where
A: Array,
<A as Array>::Item: Hash,
A: Array,
<A as Array>::Item: Hash,
impl<'a> Hash for MetadataBuilder<'a>
[src]
impl<'a> Hash for Metadata<'a>
[src]
impl Hash for LevelFilter
[src]
impl Hash for SigId
impl Hash for Match
impl<Tz> Hash for Date<Tz> where
Tz: TimeZone,
[src]
Tz: TimeZone,
impl Hash for Weekday
[src]
impl Hash for NaiveTime
[src]
NaiveTime
can be used as a key to the hash maps (in principle).
Practically this also takes account of fractional seconds, so it is not recommended. (For the obvious reason this also distinguishes leap seconds from non-leap seconds.)
impl<Tz> Hash for DateTime<Tz> where
Tz: TimeZone,
[src]
Tz: TimeZone,
impl Hash for FixedOffset
[src]
impl Hash for Month
[src]
impl<T> Hash for LocalResult<T> where
T: Hash,
[src]
T: Hash,
impl Hash for NaiveDateTime
[src]
NaiveDateTime
can be used as a key to the hash maps (in principle).
Practically this also takes account of fractional seconds, so it is not recommended. (For the obvious reason this also distinguishes leap seconds from non-leap seconds.)
impl Hash for NaiveDate
[src]
impl Hash for Timespec
[src]
impl Hash for Duration
[src]
impl Hash for Tm
[src]
impl Hash for Sign
[src]
impl Hash for BigUint
[src]
impl Hash for BigInt
[src]
impl<T> Hash for Complex<T> where
T: Hash,
[src]
T: Hash,
impl<T> Hash for Ratio<T> where
T: Clone + Hash + Integer,
[src]
T: Clone + Hash + Integer,
impl Hash for Tz
impl<'a> Hash for UrnRef<'a>
[src]
impl Hash for Hyphenated
[src]
impl Hash for Urn
[src]
impl<'a> Hash for HyphenatedRef<'a>
[src]
impl Hash for Uuid
[src]
impl Hash for Simple
[src]
impl Hash for Error
[src]
impl<'a> Hash for SimpleRef<'a>
[src]
impl Hash for LittleEndian
impl Hash for BigEndian
impl Hash for Bytes
[src]
impl Hash for BytesMut
[src]
impl Hash for Digest
impl<T, N> Hash for GenericArray<T, N> where
N: ArrayLength<T>,
T: Hash,
N: ArrayLength<T>,
T: Hash,
impl Hash for Greater
impl<V, A> Hash for TArr<V, A> where
V: Hash,
A: Hash,
V: Hash,
A: Hash,
impl Hash for Equal
impl Hash for Z0
impl Hash for ATerm
impl<U> Hash for NInt<U> where
U: NonZero + Unsigned + Hash,
U: NonZero + Unsigned + Hash,
impl<U, B> Hash for UInt<U, B> where
B: Hash,
U: Hash,
B: Hash,
U: Hash,
impl Hash for B1
impl Hash for Less
impl Hash for UTerm
impl Hash for B0
impl<U> Hash for PInt<U> where
U: NonZero + Unsigned + Hash,
U: NonZero + Unsigned + Hash,
impl<'s, T> Hash for SliceVec<'s, T> where
T: Hash,
T: Hash,
impl<A> Hash for TinyVec<A> where
A: Array,
<A as Array>::Item: Hash,
A: Array,
<A as Array>::Item: Hash,
impl<A> Hash for ArrayVec<A> where
A: Array,
<A as Array>::Item: Hash,
A: Array,
<A as Array>::Item: Hash,
impl<A, S> Hash for HashSet<A, S> where
A: Hash + Eq,
S: BuildHasher + Default,
A: Hash + Eq,
S: BuildHasher + Default,
impl<A> Hash for Vector<A> where
A: Clone + Hash,
A: Clone + Hash,
impl<A> Hash for OrdSet<A> where
A: Ord + Hash,
A: Ord + Hash,
impl<K, V, S> Hash for HashMap<K, V, S> where
V: Hash,
S: BuildHasher,
K: Hash + Eq,
V: Hash,
S: BuildHasher,
K: Hash + Eq,
impl<K, V> Hash for OrdMap<K, V> where
V: Hash,
K: Ord + Hash,
V: Hash,
K: Ord + Hash,
impl<A, N> Hash for Chunk<A, N> where
N: ChunkLength<A>,
A: Hash,
N: ChunkLength<A>,
A: Hash,
impl<A, T> Hash for InlineArray<A, T> where
A: Hash,
A: Hash,
impl Hash for Instant
[src]
impl Hash for UCred
[src]
impl Hash for Token
[src]
impl Hash for SslSessionCacheMode
[src]
impl Hash for SslMode
[src]
impl Hash for ExtensionContext
[src]
impl Hash for KeyIvPair
[src]
impl Hash for Pkcs7Flags
[src]
impl Hash for Nid
[src]
impl Hash for X509VerifyFlags
[src]
impl Hash for CMSOptions
[src]
impl Hash for TimeDiff
[src]
impl Hash for ShutdownState
[src]
impl Hash for SslVerifyMode
[src]
impl Hash for SslOptions
[src]
impl Hash for X509CheckFlags
[src]
impl Hash for OcspFlag
[src]
impl<T> Hash for AllowStdIo<T> where
T: Hash,
T: Hash,
impl Hash for BytesCodec
[src]
impl Hash for LinesCodec
[src]
impl<A> Hash for SmallString<A> where
A: Array<Item = u8>,
A: Array<Item = u8>,
impl Hash for Dsn
impl Hash for ThreadId
impl Hash for Addr
impl Hash for ProjectId
impl Hash for Scheme
impl Hash for SessionStatus
impl Hash for Orientation
impl Hash for RegVal
impl Hash for IpAddress
impl Hash for Level
impl<S> Hash for Host<S> where
S: Hash,
[src]
S: Hash,
impl Hash for Url
[src]
URLs hash like their serialization.
impl Hash for OpaqueOrigin
[src]
impl Hash for Origin
[src]
impl Hash for CodeId
impl Hash for DebugId
impl Hash for Authority
[src]
Case-insensitive hashing
Examples
let a: Authority = "HELLO.com".parse().unwrap(); let b: Authority = "hello.coM".parse().unwrap(); let mut s = DefaultHasher::new(); a.hash(&mut s); let a = s.finish(); let mut s = DefaultHasher::new(); b.hash(&mut s); let b = s.finish(); assert_eq!(a, b);
impl Hash for Method
[src]
impl Hash for HeaderValue
[src]
impl Hash for Scheme
[src]
Case-insensitive hashing
impl Hash for HeaderName
[src]
impl Hash for StatusCode
[src]
impl Hash for Version
[src]
impl Hash for Uri
[src]
impl Hash for Bytes
[src]
impl Hash for BytesMut
[src]
impl Hash for Instant
[src]
impl Hash for Token
[src]
impl Hash for Name
[src]
impl Hash for Span
[src]
impl Hash for Identifier
[src]
impl Hash for Field
[src]
impl Hash for Id
[src]
impl Hash for StreamId
[src]
impl Hash for BytesCodec
[src]
impl Hash for LinesCodec
[src]
impl<'a> Hash for Name<'a>
[src]
impl Hash for Mime
[src]
impl<S> Hash for Ascii<S> where
S: AsRef<str>,
[src]
S: AsRef<str>,
impl<S> Hash for UniCase<S> where
S: AsRef<str>,
[src]
S: AsRef<str>,
impl Hash for Encoding
impl Hash for Ipv6AddrRange
[src]
impl Hash for Ipv4AddrRange
[src]
impl Hash for IpAddrRange
[src]
impl Hash for IpSubnets
[src]
impl Hash for Ipv4Net
[src]
impl Hash for Ipv6Subnets
[src]
impl Hash for IpNet
[src]
impl Hash for Ipv4Subnets
[src]
impl Hash for Ipv6Net
[src]
impl Hash for DwLang
impl<T> Hash for UnitSectionOffset<T> where
T: Hash,
T: Hash,
impl<'input, Endian> Hash for EndianSlice<'input, Endian> where
Endian: Hash + Endianity,
Endian: Hash + Endianity,
impl Hash for DwAddr
impl Hash for Range
impl Hash for DwLns
impl Hash for DwUt
impl<T> Hash for DebugFrameOffset<T> where
T: Hash,
T: Hash,
impl<R> Hash for Expression<R> where
R: Reader + Hash,
R: Reader + Hash,
impl Hash for DebugTypeSignature
impl<T> Hash for LocationListsOffset<T> where
T: Hash,
T: Hash,
impl Hash for DwForm
impl<T> Hash for RangeListsOffset<T> where
T: Hash,
T: Hash,
impl Hash for DwOrd
impl Hash for DwVis
impl Hash for DwLnct
impl Hash for Format
impl Hash for BigEndian
impl Hash for DwEhPe
impl Hash for DwAte
impl<T> Hash for DebugTypesOffset<T> where
T: Hash,
T: Hash,
impl Hash for DwInl
impl<T> Hash for DebugMacroOffset<T> where
T: Hash,
T: Hash,
impl Hash for DwMacro
impl Hash for DwVirtuality
impl<T> Hash for EhFrameOffset<T> where
T: Hash,
T: Hash,
impl Hash for DwDefaulted
impl Hash for DwoId
impl Hash for DwLne
impl Hash for SectionId
impl Hash for DwChildren
impl Hash for RunTimeEndian
impl Hash for DwRle
impl<R> Hash for LocationListEntry<R> where
R: Reader + Hash,
R: Reader + Hash,
impl Hash for DwId
impl Hash for LineEncoding
impl<T> Hash for DebugAbbrevOffset<T> where
T: Hash,
T: Hash,
impl Hash for DwOp
impl Hash for Register
impl Hash for DwAccess
impl Hash for DwCfa
impl Hash for LittleEndian
impl Hash for DwCc
impl Hash for DwTag
impl Hash for DwAt
impl<T> Hash for UnitOffset<T> where
T: Hash,
T: Hash,
impl Hash for DwDsc
impl Hash for Encoding
impl<T> Hash for DebugMacinfoOffset<T> where
T: Hash,
T: Hash,
impl<T> Hash for DebugInfoOffset<T> where
T: Hash,
T: Hash,
impl Hash for DwDs
impl Hash for DwEnd
impl Hash for DwLle
impl Hash for DwIdx
impl Hash for AddressSize
impl Hash for LittleEndian
impl Hash for BinaryFormat
impl Hash for ArchiveKind
impl Hash for Architecture
impl Hash for SymbolSection
impl<E> Hash for I64Bytes<E> where
E: Endian + Hash,
E: Endian + Hash,
impl Hash for SymbolIndex
impl<E> Hash for I16Bytes<E> where
E: Endian + Hash,
E: Endian + Hash,
impl Hash for SectionIndex
impl Hash for BigEndian
impl Hash for CompressionFormat
impl<'data> Hash for SymbolMapName<'data>
impl<E> Hash for I32Bytes<E> where
E: Endian + Hash,
E: Endian + Hash,
impl Hash for Endianness
impl Hash for RelocationTarget
impl<'data> Hash for CompressedData<'data>
impl<E> Hash for U64Bytes<E> where
E: Endian + Hash,
E: Endian + Hash,
impl<'data> Hash for ObjectMapEntry<'data>
impl<E> Hash for U16Bytes<E> where
E: Endian + Hash,
E: Endian + Hash,
impl<E> Hash for U32Bytes<E> where
E: Endian + Hash,
E: Endian + Hash,
impl Hash for CompressionStrategy
impl Hash for TDEFLStatus
impl Hash for MZStatus
impl Hash for StreamResult
impl Hash for DataFormat
impl Hash for TDEFLFlush
impl Hash for TINFLStatus
impl Hash for CompressionLevel
impl Hash for MZFlush
impl Hash for MZError
impl Hash for Name
[src]
impl Hash for StreamId
[src]
Loading content...Implementors
impl Hash for af_lib::log::Level
[src]
impl Hash for Kind
[src]
impl Hash for af_lib::prelude::af_core::test::prelude::cmp::Ordering
[src]
impl Hash for Infallible
[src]
impl Hash for af_lib::fmt::Error
[src]
impl Hash for Type
[src]
impl Hash for af_lib::postgres::types::Field
[src]
impl Hash for SharedString
[src]
impl Hash for RangeFull
[src]
impl Hash for af_lib::prelude::Uuid
[src]
impl<'_, B> Hash for Cow<'_, B> where
B: Hash + ToOwned + ?Sized,
[src]
B: Hash + ToOwned + ?Sized,
impl<'a> Hash for Location<'a>
[src]
impl<A, B> Hash for EitherOrBoth<A, B> where
B: Hash,
A: Hash,
[src]
B: Hash,
A: Hash,
impl<Idx> Hash for af_lib::prelude::Range<Idx> where
Idx: Hash,
[src]
Idx: Hash,
impl<Idx> Hash for RangeFrom<Idx> where
Idx: Hash,
[src]
Idx: Hash,
impl<Idx> Hash for RangeInclusive<Idx> where
Idx: Hash,
[src]
Idx: Hash,
impl<Idx> Hash for RangeTo<Idx> where
Idx: Hash,
[src]
Idx: Hash,
impl<Idx> Hash for RangeToInclusive<Idx> where
Idx: Hash,
[src]
Idx: Hash,
impl<L, R> Hash for Either<L, R> where
L: Hash,
R: Hash,
[src]
L: Hash,
R: Hash,
impl<P> Hash for Pin<P> where
P: Deref,
<P as Deref>::Target: Hash,
[src]
P: Deref,
<P as Deref>::Target: Hash,
impl<T> Hash for Poll<T> where
T: Hash,
[src]
T: Hash,
impl<T> Hash for Bound<T> where
T: Hash,
[src]
T: Hash,
impl<T> Hash for Reverse<T> where
T: Hash,
[src]
T: Hash,
impl<T> Hash for Discriminant<T>
[src]
impl<T> Hash for NonNull<T> where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Hash for Arc<T> where
T: Hash + ?Sized,
[src]
T: Hash + ?Sized,
impl<T> Hash for ManuallyDrop<T> where
T: Hash + ?Sized,
[src]
T: Hash + ?Sized,
impl<T> Hash for PhantomData<T> where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Hash for Rc<T> where
T: Hash + ?Sized,
[src]
T: Hash + ?Sized,
impl<Y, R> Hash for GeneratorState<Y, R> where
R: Hash,
Y: Hash,
[src]
R: Hash,
Y: Hash,