simd_r_drive/storage_engine/digest/
xxh3_build_hasher.rs

1use std::hash::{BuildHasher, Hasher};
2use xxhash_rust::xxh3::xxh3_64;
3
4/// Custom Hasher using XXH3
5#[derive(Default)]
6pub struct Xxh3Hasher {
7    hash: u64,
8}
9
10impl Hasher for Xxh3Hasher {
11    fn write(&mut self, bytes: &[u8]) {
12        self.hash = xxh3_64(bytes);
13    }
14
15    fn finish(&self) -> u64 {
16        self.hash
17    }
18}
19
20/// Custom BuildHasher for `HashMap`/`HashSet`
21#[derive(Default, Clone)]
22pub struct Xxh3BuildHasher;
23
24impl BuildHasher for Xxh3BuildHasher {
25    type Hasher = Xxh3Hasher;
26
27    fn build_hasher(&self) -> Self::Hasher {
28        Xxh3Hasher::default()
29    }
30}