28 #ifndef BERSERK_STRINGNAME_HPP
29 #define BERSERK_STRINGNAME_HPP
39 #include <unordered_map>
95 class Node :
public RefCnt {
97 explicit Node(
String str) : mString(std::move(str)), mHash(std::hash<String>{}(mString)) {}
99 size_t GetHash()
const {
return mHash; }
113 static std::mutex &GetAccessMutex();
114 static std::unordered_map<String, Ref<Node>> &GetCachedNames();
129 return stringName.GetHash();
135 inline std::ostream &
operator<<(std::ostream &stream,
const BRK_NS::StringName &name) {
136 stream << name.GetStr();
#define BRK_NS_END
Definition: Config.hpp:48
#define BRK_API
Definition: Config.hpp:32
#define BRK_NS
Definition: Config.hpp:50
std::ostream & operator<<(std::ostream &stream, const BRK_NS::StringName &name)
Definition: StringName.hpp:135
std::size_t size_t
Definition: Typedefs.hpp:49
Reference counted base object.
Definition: RefCnt.hpp:52
Cached shared utf-8 string id.
Definition: StringName.hpp:61
BRK_API StringName & operator=(const StringName &other)
Definition: StringName.cpp:64
BRK_API bool operator!=(const StringName &other) const
Definition: StringName.cpp:87
BRK_API ~StringName()
Definition: StringName.cpp:60
BRK_API StringName(const String &str=String())
Definition: StringName.cpp:32
BRK_API const String & GetStr() const
Definition: StringName.cpp:91
BRK_API bool operator==(const StringName &other) const
Definition: StringName.cpp:83
BRK_API size_t GetHash() const
Definition: StringName.cpp:96
Utf-8 encoded std based default string class.
std::string String
Definition: String.hpp:47
Definition: GLDevice.cpp:46
Definition: TQuat.hpp:431
std::size_t operator()(const BRK_NS::StringName &stringName) const
Definition: StringName.hpp:128