core: implement string hashing using FNV-1a
This commit is contained in:
16
core/hash.c
Normal file
16
core/hash.c
Normal file
@@ -0,0 +1,16 @@
|
||||
#include <blue/core/hash.h>
|
||||
|
||||
#define FNV1_OFFSET_BASIS 0xcbf29ce484222325
|
||||
#define FNV1_PRIME 0x100000001b3
|
||||
|
||||
uint64_t b_hash_string(const char *s)
|
||||
{
|
||||
uint64_t hash = FNV1_OFFSET_BASIS;
|
||||
|
||||
for (size_t i = 0; s[i]; i++) {
|
||||
hash ^= s[i];
|
||||
hash *= FNV1_PRIME;
|
||||
}
|
||||
|
||||
return hash;
|
||||
}
|
||||
Reference in New Issue
Block a user