pub struct RapidInlineHasher { /* private fields */ }
Expand description
A Hasher trait compatible hasher that uses the rapidhash
algorithm, and uses #[inline(always)]
for all methods.
Using #[inline(always)]
can deliver a large performance improvement when hashing complex
objects, but should be benchmarked for your specific use case. If you have HashMaps for many
different types this may come at the cost of some binary size increase.
See crate::RapidHasher for default non-forced inline methods.
See RapidInlineHashBuilder for usage with std::collections::HashMap.
§Example
use std::hash::Hasher;
use rapidhash::RapidInlineHasher;
let mut hasher = RapidInlineHasher::default();
hasher.write(b"hello world");
let hash = hasher.finish();
Implementations§
Source§impl RapidInlineHasher
impl RapidInlineHasher
Sourcepub const DEFAULT_SEED: u64 = 13_679_853_920_966_426_665u64
pub const DEFAULT_SEED: u64 = 13_679_853_920_966_426_665u64
Default RapidHasher
seed.
Sourcepub const fn new(seed: u64) -> Self
pub const fn new(seed: u64) -> Self
Create a new RapidInlineHasher with a custom seed.
Sourcepub const fn default_const() -> Self
pub const fn default_const() -> Self
Create a new RapidInlineHasher using the default seed.
Sourcepub const fn write_const(&self, bytes: &[u8]) -> Self
pub const fn write_const(&self, bytes: &[u8]) -> Self
Const equivalent to Hasher::write, and marked as #[inline(always)]
.
This can deliver a large performance improvement when the bytes
length is known at compile
time.
Sourcepub const fn finish_const(&self) -> u64
pub const fn finish_const(&self) -> u64
Const equivalent to Hasher::finish, and marked as #[inline(always)]
.
Trait Implementations§
Source§impl Clone for RapidInlineHasher
impl Clone for RapidInlineHasher
Source§fn clone(&self) -> RapidInlineHasher
fn clone(&self) -> RapidInlineHasher
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Default for RapidInlineHasher
impl Default for RapidInlineHasher
Source§fn default() -> Self
fn default() -> Self
Create a new RapidInlineHasher with the default seed.
See crate::RapidRandomState for a std::hash::BuildHasher that initialises with a random seed.
Source§impl Hasher for RapidInlineHasher
This implementation implements methods for all integer types as the compiler will (hopefully…)
inline and heavily optimize the rapidhash_core for each. Where the bytes length is known the
compiler can make significant optimisations and saves us writing them out by hand.
impl Hasher for RapidInlineHasher
This implementation implements methods for all integer types as the compiler will (hopefully…) inline and heavily optimize the rapidhash_core for each. Where the bytes length is known the compiler can make significant optimisations and saves us writing them out by hand.
Source§fn write(&mut self, bytes: &[u8])
fn write(&mut self, bytes: &[u8])
Write a byte slice to the hasher, marked as #[inline(always)]
.
Source§fn write_u128(&mut self, i: u128)
fn write_u128(&mut self, i: u128)
u128
into this hasher.Source§fn write_usize(&mut self, i: usize)
fn write_usize(&mut self, i: usize)
usize
into this hasher.Source§fn write_i128(&mut self, i: i128)
fn write_i128(&mut self, i: i128)
i128
into this hasher.Source§fn write_isize(&mut self, i: isize)
fn write_isize(&mut self, i: isize)
isize
into this hasher.Source§fn write_length_prefix(&mut self, len: usize)
fn write_length_prefix(&mut self, len: usize)
hasher_prefixfree_extras
)