15 lines
311 B
C++
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);
|
||
|
}
|