use std::hash::BuildHasher;
pub use foldhash::fast::{FixedState, FoldHasher};
#[derive(Clone, Copy, Debug, Default)]
pub struct FastHashBuilder;
impl BuildHasher for FastHashBuilder {
type Hasher = FoldHasher<'static>;
#[inline]
fn build_hasher(&self) -> Self::Hasher {
FixedState::with_seed(0x517cc1b727220a95).build_hasher()
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn fast_hash_builder_is_zero_sized() {
assert_eq!(std::mem::size_of::<FastHashBuilder>(), 0);
}
#[test]
fn fast_hash_builder_is_deterministic() {
let builder1 = FastHashBuilder;
let builder2 = FastHashBuilder;
let hash1 = builder1.hash_one(42u64);
let hash2 = builder2.hash_one(42u64);
assert_eq!(hash1, hash2);
}
}