You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

ahash

Package Overview
Dependencies
Maintainers
1
Versions
95
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ahash - cargo Package Compare versions

Comparing version
0.8.10
to
0.8.11
+1
-1
.cargo_vcs_info.json
{
"git": {
"sha1": "545a200b43fee2404c812d5d5c05c2734fb790bd"
"sha1": "db36e4c4f0606b786bc617eefaffbe4ae9100762"
},
"path_in_vcs": ""
}

@@ -16,3 +16,3 @@ # THIS FILE IS AUTOMATICALLY GENERATED BY CARGO

name = "ahash"
version = "0.8.10"
version = "0.8.11"
authors = ["Tom Kaitchuck <Tom.Kaitchuck@gmail.com>"]

@@ -144,2 +144,5 @@ build = "./build.rs"

[dev-dependencies.smallvec]
version = "1.13.1"
[build-dependencies.version_check]

@@ -146,0 +149,0 @@ version = "0.9.4"

@@ -228,4 +228,3 @@ use crate::convert::*;

fn finish(&self) -> u64 {
let rot = (self.pad & 63) as u32;
self.buffer.rotate_left(rot)
folded_multiply(self.buffer, self.pad)
}

@@ -256,3 +255,2 @@

self.buffer = folded_multiply(i ^ self.buffer, MULTIPLE);
self.pad = self.pad.wrapping_add(i);
}

@@ -259,0 +257,0 @@

@@ -59,4 +59,4 @@ use crate::convert::*;

AHasher {
buffer: rand_state.k0,
pad: rand_state.k1,
buffer: rand_state.k1,
pad: rand_state.k0,
extra_keys: [rand_state.k2, rand_state.k3],

@@ -121,3 +121,3 @@ }

fn short_finish(&self) -> u64 {
self.buffer.wrapping_add(self.pad)
folded_multiply(self.buffer, self.pad)
}

@@ -215,4 +215,4 @@ }

fn finish(&self) -> u64 {
let rot = (self.pad & 63) as u32;
self.buffer.rotate_left(rot)
folded_multiply(self.buffer, self.pad)
//self.buffer
}

@@ -243,3 +243,2 @@

self.buffer = folded_multiply(i ^ self.buffer, MULTIPLE);
self.pad = self.pad.wrapping_add(i);
}

@@ -246,0 +245,0 @@

@@ -341,6 +341,8 @@ use core::hash::{Hash, Hasher};

fn test_sparse<T: Hasher>(hasher: impl Fn() -> T) {
use smallvec::SmallVec;
let mut buf = [0u8; 256];
let mut hashes = HashMap::new();
for idx_1 in 0..256 {
for idx_2 in idx_1 + 1..256 {
for idx_1 in 0..255_u8 {
for idx_2 in idx_1 + 1..=255_u8 {
for value_1 in [1, 2, 4, 8, 16, 32, 64, 128] {

@@ -351,9 +353,9 @@ for value_2 in [

] {
buf[idx_1] = value_1;
buf[idx_2] = value_2;
buf[idx_1 as usize] = value_1;
buf[idx_2 as usize] = value_2;
let hash_value = hash_with(&buf, &mut hasher());
let keys = hashes.entry(hash_value).or_insert(Vec::new());
keys.push((idx_1, value_1, idx_2, value_2));
buf[idx_1] = 0;
buf[idx_2] = 0;
let keys = hashes.entry(hash_value).or_insert(SmallVec::<[[u8; 4]; 1]>::new());
keys.push([idx_1, value_1, idx_2, value_2]);
buf[idx_1 as usize] = 0;
buf[idx_2 as usize] = 0;
}

@@ -360,0 +362,0 @@ }

@@ -473,4 +473,4 @@ use core::hash::Hash;

let mut hasher = AHasherU64 {
buffer: self.k0,
pad: self.k1,
buffer: self.k1,
pad: self.k0,
};

@@ -477,0 +477,0 @@ value.hash(&mut hasher);

@@ -78,3 +78,3 @@ #![cfg_attr(feature = "specialize", feature(build_hasher_simple_hash_one))]

// Number of iterations per batch should be high enough to hide timing overhead.
let size = BatchSize::NumIterations(2_000);
let size = BatchSize::NumIterations(50_000);

@@ -81,0 +81,0 @@ let mut rng = rand::thread_rng();

@@ -241,3 +241,3 @@ #![cfg_attr(feature = "specialize", feature(build_hasher_simple_hash_one))]

for i in 0..128 {
let mut keys: [u8; 8] = hasher.hash_one(i as u64).to_ne_bytes();
let mut keys: [u8; 8] = hasher.hash_one((i as u64) << 30).to_ne_bytes();
//let mut keys = r.next_u64().to_ne_bytes(); //This is a control to test assert sensitivity.

@@ -244,0 +244,0 @@ for idx in 0..8 {

Sorry, the diff of this file is not supported yet