Crate seedable_hash

Source
Expand description

seedable_hash is the Rust library (by Piotr Beling) for calculating seedable hashes and fast reduction of their ranges.

seedable_hash conditionally supports hash functions from many crates:

  • GxHash - enabled by gxhash feature,
  • wyhash - enabled by (default) wyhash feature,
  • xxh3 - enabled by xxhash-rust feature,
  • rapidhash - enabled by rapidhash feature,
  • Sip13 using unstable standard library feature hashmap_internals - enabled by sip13 feature,
  • Fowler–Noll–Vo - enabled by fnv feature,
  • standard hash_map::DefaultHasher via Seedable wrapper - always enabled,
  • and others via Seedable wrapper.

BuildDefaultSeededHasher is an alias to the fastest of the enabled methods, selected according to the order of the above list.

We recommend GxHash (gxhash feature) on the platforms it supports.

For hashing integers, we recommend Fx Hash wrapped by Seedable.

Structs§

BuildWyHash
BuildSeededHasher that uses wyhash crate.
Seedable
BuildSeededHasher that uses standard BuildHasher.

Traits§

BuildSeededHasher
Family of hash functions that allows the creation of Hasher instances initialized with a given seed.

Functions§

map16_to_16
Maps 16-bit hash to the range [0, n), where n is a 16-bit integer.
map32_to_32
Maps 32-bit hash to the range [0, n), where n is a 32-bit integer.
map64_to_32
Maps 64-bit hash to the range [0, n), where n is a 32-bit integer.
map64_to_64
Maps 64-bit hash to the range [0, n), where n is a 64-bit integer.
map_usize
Maps hash to the range [0, n) using either map64_to_64 or map32_to_32 (depended on platform).

Type Aliases§

BuildDefaultSeededHasher
The default BuildSeededHasher.