18 #ifndef NURIA_ESSENTIALS_HPP
19 #define NURIA_ESSENTIALS_HPP
21 #include "core_global.hpp"
27 constexpr uint32_t jenkinsOne (uint32_t hash,
const char *key,
int len) {
30 : jenkinsOne ((hash + *key + ((hash + *key) << 10)) ^
31 ((hash + *key + ((hash + *key) << 10)) >> 6),
45 constexpr uint32_t jenkinsHash (
const char *key,
size_t len) {
46 return ((jenkinsOne (0, key, len) + (jenkinsOne (0, key, len) << 3)) ^
47 ((jenkinsOne (0, key, len) + (jenkinsOne (0, key, len) << 3)) >> 11)) +
48 (((jenkinsOne (0, key, len) + (jenkinsOne (0, key, len) << 3)) ^
49 ((jenkinsOne (0, key, len) + (jenkinsOne (0, key, len) << 3)) >> 11)) << 15);
54 #endif // NURIA_ESSENTIALS_HPP