precomputed_hash/
lib.rs

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