A trait for creating instances of Hasher
.
A BuildHasher
is typically used (e.g. by HashMap
) to create
Hasher
s for each key such that they are hashed independently of one
another, since Hasher
s contain state.
For each instance of BuildHasher
, the Hasher
s created by
build_hasher
should be identical. That is, if the same stream of bytes
is fed into each hasher, the same output will also be generated.
use std::collections::hash_map::RandomState;
use std::hash::{BuildHasher, Hasher};
let s = RandomState::new();
let mut hasher_1 = s.build_hasher();
let mut hasher_2 = s.build_hasher();
hasher_1.write_u32(8128);
hasher_2.write_u32(8128);
assert_eq!(hasher_1.finish(), hasher_2.finish());
Type of the hasher that will be created.
Creates a new hasher.
Each call to build_hasher
on the same instance should produce identical
Hasher
s.
use std::collections::hash_map::RandomState;
use std::hash::BuildHasher;
let s = RandomState::new();
let new_s = s.build_hasher();