| //! 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() |
| } |
| } |