#include "hashalgorithms.h"
#include "MurmurHash3.h"
static uint64_t _read_little_endian32(const uint8_t *data, uint64_t pos) {
return read_little_endian32(data, pos);
}
static void _write_little_endian32(uint8_t *data, uint64_t hash) {
write_little_endian32(data, hash);
}
static sparkey_hash_algorithm murmurhash32 = {
&murmurhash32_hash,
&_read_little_endian32,
&_write_little_endian32
};
static sparkey_hash_algorithm murmurhash64 = {
&murmurhash64_hash,
&read_little_endian64,
&write_little_endian64
};
static sparkey_hash_algorithm invalid = {
NULL, NULL, NULL
};
sparkey_hash_algorithm sparkey_get_hash_algorithm(uint32_t hash_size) {
switch (hash_size) {
case 4: return murmurhash32;
case 8: return murmurhash64;
default: return invalid;
}
}