Browse Source
use `RandomState::with_seeds` replace `AHasher::default` (#2254)
* use `RandomState::with_seeds` replace `AHasher::default`
* remove history checkout
* update seeds to `1,2,3,4`
pull/2257/head
axxop
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
6 additions and
8 deletions
-
crates/egui/src/id.rs
-
crates/epaint/src/util/mod.rs
|
|
@ -45,16 +45,16 @@ impl Id { |
|
|
|
|
|
|
|
/// Generate a new [`Id`] by hashing some source (e.g. a string or integer).
|
|
|
|
pub fn new(source: impl std::hash::Hash) -> Id { |
|
|
|
use std::hash::Hasher; |
|
|
|
let mut hasher = epaint::ahash::AHasher::default(); |
|
|
|
use std::hash::{BuildHasher, Hasher}; |
|
|
|
let mut hasher = epaint::ahash::RandomState::with_seeds(1, 2, 3, 4).build_hasher(); |
|
|
|
source.hash(&mut hasher); |
|
|
|
Id(hasher.finish()) |
|
|
|
} |
|
|
|
|
|
|
|
/// Generate a new [`Id`] by hashing the parent [`Id`] and the given argument.
|
|
|
|
pub fn with(self, child: impl std::hash::Hash) -> Id { |
|
|
|
use std::hash::Hasher; |
|
|
|
let mut hasher = epaint::ahash::AHasher::default(); |
|
|
|
use std::hash::{BuildHasher, Hasher}; |
|
|
|
let mut hasher = epaint::ahash::RandomState::with_seeds(1, 2, 3, 4).build_hasher(); |
|
|
|
hasher.write_u64(self.0); |
|
|
|
child.hash(&mut hasher); |
|
|
|
Id(hasher.finish()) |
|
|
|
|
|
@ -5,10 +5,8 @@ pub use ordered_float::*; |
|
|
|
/// Hash the given value with a predictable hasher.
|
|
|
|
#[inline] |
|
|
|
pub fn hash(value: impl std::hash::Hash) -> u64 { |
|
|
|
use std::hash::Hasher as _; |
|
|
|
let mut hasher = ahash::AHasher::default(); |
|
|
|
value.hash(&mut hasher); |
|
|
|
hasher.finish() |
|
|
|
use ahash::RandomState; |
|
|
|
RandomState::with_seeds(1, 2, 3, 4).hash_one(value) |
|
|
|
} |
|
|
|
|
|
|
|
/// Hash the given value with the given hasher.
|
|
|
|