diff --git a/src/util/hash.rs b/src/util/hash.rs index 945d7f6c14ccbbe49ac72f730353903665980cc3..c9fce802b0d7eada4f3ad1334d8ce72d6da1881c 100644 --- a/src/util/hash.rs +++ b/src/util/hash.rs @@ -13,7 +13,7 @@ use crate::util::slice::Slice; pub trait ToHash { fn to_hash(&self) -> u32; - fn to_hash_seed(&self, seed: u32) -> u32; + fn to_hash_with_seed(&self, seed: u32) -> u32; } /// 所有基本类型 u8, i8, u16, u32 ... 的Vec都可以实现 hash 值计算 @@ -28,10 +28,10 @@ impl ToHash for Vec { v_v.to_hash() } - fn to_hash_seed(&self, seed: u32) -> u32 { + fn to_hash_with_seed(&self, seed: u32) -> u32 { let v_v = self.as_slice(); - v_v.to_hash_seed(seed) + v_v.to_hash_with_seed(seed) } } @@ -44,16 +44,10 @@ impl ToHash for Vec { impl ToHash for &[T] { #[inline] fn to_hash(&self) -> u32 { - let ptr_u8 = self.as_ptr() as *const _ as *const u8; - - let data = unsafe { - stds::from_raw_parts(ptr_u8, size_of::() * self.len()) - }; - - Hash::hash_code(data, HASH_DEFAULT_SEED) + self.to_hash_with_seed(HASH_DEFAULT_SEED) } - fn to_hash_seed(&self, seed: u32) -> u32 { + fn to_hash_with_seed(&self, seed: u32) -> u32 { let ptr_u8 = self.as_ptr() as *const _ as *const u8; let data = unsafe { @@ -71,10 +65,10 @@ impl ToHash for &[T] { /// ``` impl ToHash for &str { fn to_hash(&self) -> u32 { - Hash::hash_code(self.as_bytes(), HASH_DEFAULT_SEED) + self.to_hash_with_seed(HASH_DEFAULT_SEED) } - fn to_hash_seed(&self, seed: u32) -> u32 { + fn to_hash_with_seed(&self, seed: u32) -> u32 { Hash::hash_code(self.as_bytes(), seed) } } @@ -88,10 +82,10 @@ impl ToHash for &str { /// ``` impl ToHash for Slice { fn to_hash(&self) -> u32 { - Hash::hash_code(self.to_vec().as_slice(), HASH_DEFAULT_SEED) + self.to_hash_with_seed(HASH_DEFAULT_SEED) } - fn to_hash_seed(&self, seed: u32) -> u32 { + fn to_hash_with_seed(&self, seed: u32) -> u32 { Hash::hash_code(self.to_vec().as_slice(), seed) } } @@ -105,10 +99,10 @@ impl ToHash for Slice { /// ``` impl ToHash for String { fn to_hash(&self) -> u32 { - Hash::hash_code(self.as_bytes(), HASH_DEFAULT_SEED) + self.to_hash_with_seed(HASH_DEFAULT_SEED) } - fn to_hash_seed(&self, seed: u32) -> u32 { + fn to_hash_with_seed(&self, seed: u32) -> u32 { Hash::hash_code(self.as_bytes(), seed) } }