aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/vlib/hash/wyhash.c.v
blob: 3f93d245d296cab55d3a841216bb834b15d332d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
module hash

//#flag -I @VEXEROOT/thirdparty/wyhash
//#include "wyhash.h"
fn C.wyhash(&byte, u64, u64, &u64) u64

fn C.wyhash64(u64, u64) u64

fn init() {
	_ := {
		1: 1
	}
}

[inline]
pub fn wyhash_c(key &byte, len u64, seed u64) u64 {
	return C.wyhash(key, len, seed, &u64(C._wyp))
}

[inline]
pub fn wyhash64_c(a u64, b u64) u64 {
	return C.wyhash64(a, b)
}

[inline]
pub fn sum64_string(key string, seed u64) u64 {
	return wyhash_c(key.str, u64(key.len), seed)
}

[inline]
pub fn sum64(key []byte, seed u64) u64 {
	return wyhash_c(&byte(key.data), u64(key.len), seed)
}