pub struct NumberHasher(/* private fields */);Expand description
Mixes whatever it is given into one word.
The constant is the 64 bit odd number used for this everywhere: multiplying by an odd number is reversible, so no two inputs collide before the shift, and the shift moves the high bits, which the multiply mixed best, down to where a hash map reads them.
Trait Implementations§
Source§impl Default for NumberHasher
impl Default for NumberHasher
Source§fn default() -> NumberHasher
fn default() -> NumberHasher
Returns the “default value” for a type. Read more
Source§impl Hasher for NumberHasher
impl Hasher for NumberHasher
Source§fn write(&mut self, bytes: &[u8])
fn write(&mut self, bytes: &[u8])
Bytes, for a key that is not a number after all.
Kept correct rather than fast: Hasher is one trait and a map keyed by
something else would otherwise get a hash that ignores most of it. Slow
and right beats fast and wrong, and nothing this is used for takes this
path.
Source§fn write_usize(&mut self, value: usize)
fn write_usize(&mut self, value: usize)
Writes a single
usize into this hasher.1.26.0 · Source§fn write_u128(&mut self, i: u128)
fn write_u128(&mut self, i: u128)
Writes a single
u128 into this hasher.1.26.0 · Source§fn write_i128(&mut self, i: i128)
fn write_i128(&mut self, i: i128)
Writes a single
i128 into this hasher.1.3.0 · Source§fn write_isize(&mut self, i: isize)
fn write_isize(&mut self, i: isize)
Writes a single
isize into this hasher.Source§fn write_length_prefix(&mut self, len: usize)
fn write_length_prefix(&mut self, len: usize)
🔬This is a nightly-only experimental API. (
hasher_prefixfree_extras)Writes a length prefix into this hasher, as part of being prefix-free. Read more
Auto Trait Implementations§
impl Freeze for NumberHasher
impl RefUnwindSafe for NumberHasher
impl Send for NumberHasher
impl Sync for NumberHasher
impl Unpin for NumberHasher
impl UnsafeUnpin for NumberHasher
impl UnwindSafe for NumberHasher
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more