Add stable_hash.
This commit is contained in:
parent
3a3653f42a
commit
20d4b71591
@ -4,6 +4,11 @@ Rhai Release Notes
|
|||||||
Version 1.11.0
|
Version 1.11.0
|
||||||
==============
|
==============
|
||||||
|
|
||||||
|
New features
|
||||||
|
------------
|
||||||
|
|
||||||
|
* A new feature flag, `stable_hash`, is added that forces hashing to be consistent using a fixed seed.
|
||||||
|
|
||||||
Enhancements
|
Enhancements
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
@ -62,6 +62,7 @@ metadata = ["serde", "serde_json", "rhai_codegen/metadata", "smartstring/serde"]
|
|||||||
internals = [] # expose internal data structures
|
internals = [] # expose internal data structures
|
||||||
debugging = ["internals"] # enable debugging
|
debugging = ["internals"] # enable debugging
|
||||||
serde = ["dep:serde", "smartstring/serde", "smallvec/serde"] # implement serde for rhai types
|
serde = ["dep:serde", "smartstring/serde", "smallvec/serde"] # implement serde for rhai types
|
||||||
|
stable_hash = [] # perform all hashing with fixed seed value
|
||||||
|
|
||||||
# compiling for no-std
|
# compiling for no-std
|
||||||
no_std = ["no-std-compat", "num-traits/libm", "core-error", "libm", "ahash/compile-time-rng", "hashbrown/ahash-compile-time-rng"]
|
no_std = ["no-std-compat", "num-traits/libm", "core-error", "libm", "ahash/compile-time-rng", "hashbrown/ahash-compile-time-rng"]
|
||||||
|
@ -74,7 +74,11 @@ impl BuildHasher for StraightHasherBuilder {
|
|||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub fn get_hasher() -> ahash::AHasher {
|
pub fn get_hasher() -> ahash::AHasher {
|
||||||
|
if cfg!(feature = "stable_hash") {
|
||||||
|
ahash::RandomState::with_seeds(42, 999, 123, 0).build_hasher()
|
||||||
|
} else {
|
||||||
ahash::AHasher::default()
|
ahash::AHasher::default()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Calculate a non-zero [`u64`] hash key from a namespace-qualified variable name.
|
/// Calculate a non-zero [`u64`] hash key from a namespace-qualified variable name.
|
||||||
|
Loading…
Reference in New Issue
Block a user