highway/hash.rs
1use crate::builder::HighwayHasher;
2use crate::key::Key;
3use core::hash::BuildHasher;
4
5/// Constructs a hasher used in rust collections
6#[derive(Debug, Default)]
7pub struct HighwayBuildHasher {
8 key: Key,
9}
10
11impl HighwayBuildHasher {
12 /// Creates a new hash builder with a given key
13 #[must_use]
14 pub fn new(key: Key) -> Self {
15 HighwayBuildHasher { key }
16 }
17}
18
19impl BuildHasher for HighwayBuildHasher {
20 type Hasher = HighwayHasher;
21
22 fn build_hasher(&self) -> Self::Hasher {
23 HighwayHasher::new(self.key)
24 }
25}