LeviLamina
Loading...
Searching...
No Matches
StringHash.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5class StringHash {
6 uint mHash{2166136261u};
7
8public:
9 template <size_t N>
10 consteval StringHash(char const (&str)[N]) : StringHash(std::string_view{str}) {}
11 constexpr StringHash(std::string_view str) {
12 for (auto c : str) {
13 mHash ^= c;
14 mHash *= 16777619u;
15 }
16 }
17 [[nodiscard]] uint hash() const { return mHash; }
18 operator uint() const { return mHash; }
19};
Definition StringHash.h:5