Luna/libluna/src/Hash.cpp
apio d589834eb7
All checks were successful
continuous-integration/drone/push Build is passing
libluna: Add HashTable
2023-06-15 15:50:04 +02:00

15 lines
311 B
C++

#include <luna/Hash.h>
u64 hash_memory(const void* mem, usize size, u64 salt)
{
const char* p = (const char*)mem;
u64 h = salt;
while (--size) h = h * 101 + (u64)*p++;
return h;
}
template <> u64 hash(const char* const& value, u64 salt)
{
return hash_memory(value, strlen(value), salt);
}