trs_dataframe/
utils.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const FNV_OFFSET_BASIS_32: u32 = 0x811c9dc5;
const FNV_PRIME_32: u32 = 0x01000193;
pub const fn fnv1a_hash_str_32(bytes: &str) -> u32 {
    let bytes = bytes.as_bytes();
    let prime = FNV_PRIME_32;

    let mut hash = FNV_OFFSET_BASIS_32;
    let mut i = 0;
    let len = bytes.len();

    while i < len {
        hash ^= bytes[i] as u32;
        hash = hash.wrapping_mul(prime);
        i += 1;
    }
    hash
}