These examples use XxHash64
but the same ideas can be used for XxHash32
or XxHash3_64
.
use twox_hash::XxHash64; let seed = 1234; let hash = XxHash64::oneshot(seed, b"some bytes"); assert_eq!(0xeab5_5659_a496_d78b, hash);
use std::hash::Hasher as _; use twox_hash::XxHash64; let seed = 1234; let mut hasher = XxHash64::with_seed(seed); hasher.write(b"some"); hasher.write(b" "); hasher.write(b"bytes"); let hash = hasher.finish(); assert_eq!(0xeab5_5659_a496_d78b, hash);
HashMap
use std::{collections::HashMap, hash::BuildHasherDefault}; use twox_hash::XxHash64; let mut hash = HashMap::<_, _, BuildHasherDefault<XxHash64>>::default(); hash.insert(42, "the answer"); assert_eq!(hash.get(&42), Some(&"the answer"));
use std::collections::HashMap; use twox_hash::xxhash64; let mut hash = HashMap::<_, _, xxhash64::RandomState>::default(); hash.insert(42, "the answer"); assert_eq!(hash.get(&42), Some(&"the answer"));
use std::collections::HashMap; use twox_hash::xxhash64; let mut hash = HashMap::with_hasher(xxhash64::State::with_seed(0xdead_cafe)); hash.insert(42, "the answer"); assert_eq!(hash.get(&42), Some(&"the answer"));
name | description |
---|---|
xxhash32 | Include the XxHash32 algorithm |
xxhash64 | Include the XxHash64 algorithm |
xxhash3_64 | Include the XxHash3_64 algorithm |
random | Create random instances of the hashers |
serialize | Serialize and deserialize hasher state with Serde |
std | Use the Rust standard library. Enable this if you want SIMD support in XxHash3_64 |
alloc | Use the Rust allocator library. Enable this if you want to create XxHash3_64 with dynamic secrets |
See benchmarks in the comparison README.
git checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)