blob: 9cdb45d5b273a41d200f1e9bcc08939c84ce2b43 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
//! A base trait to expose a precomputed hash for a type.
/// A trait to expose a precomputed hash for a type.
pub trait PrecomputedHash {
// TODO(emilio): Perhaps an associated type would be on point here.
/// Return the precomputed hash for this item.
fn precomputed_hash(&self) -> u32;
}
// These are equivalent to the `std::Hash` impls.
impl<'a, T: PrecomputedHash> PrecomputedHash for &'a T {
fn precomputed_hash(&self) -> u32 {
(**self).precomputed_hash()
}
}
impl<'a, T: PrecomputedHash> PrecomputedHash for &'a mut T {
fn precomputed_hash(&self) -> u32 {
(**self).precomputed_hash()
}
}
|