xxhash_rust/
xxh32_common.rs

1#![allow(unused)]
2
3use core::mem;
4
5pub const CHUNK_SIZE: usize = mem::size_of::<u32>() * 4;
6pub const PRIME_1: u32 = 0x9E3779B1;
7pub const PRIME_2: u32 = 0x85EBCA77;
8pub const PRIME_3: u32 = 0xC2B2AE3D;
9pub const PRIME_4: u32 = 0x27D4EB2F;
10pub const PRIME_5: u32 = 0x165667B1;
11
12#[inline]
13pub const fn round(acc: u32, input: u32) -> u32 {
14    acc.wrapping_add(input.wrapping_mul(PRIME_2))
15       .rotate_left(13)
16       .wrapping_mul(PRIME_1)
17}
18
19#[inline]
20pub const fn avalanche(mut input: u32) -> u32 {
21    input ^= input >> 15;
22    input = input.wrapping_mul(PRIME_2);
23    input ^= input >> 13;
24    input = input.wrapping_mul(PRIME_3);
25    input ^= input >> 16;
26    input
27}