21 explicit UUID(
const std::string& uuidStr) : m_ID(LoadFromString(uuidStr)) {}
23 explicit operator uuids::uuid() const noexcept {
return m_ID; }
30 return uuids::to_string(m_ID);
33 [[nodiscard]] std::pair<uint64_t, uint64_t>
GetRaw()
const {
34 const auto span = m_ID.as_bytes();
35 const uint64_t left = *
reinterpret_cast<const uint64_t*
>(&span[0]);
36 const uint64_t right = *
reinterpret_cast<const uint64_t*
>(&span[8]);
37 return std::make_pair(left, right);
44 return m_ID == other.m_ID;
48 const uuids::uuid m_ID;
50 static uuids::uuid LoadFromString(
const std::string& uuidStr);
56struct std::hash<
Cori::Core::UUID> {
A 128bit UUID, can be serialized to the string and deserialized from it.
bool operator==(const UUID &other) const
Do really i need to explain this?
UUID()
Generates a random 128bit UUID.
UUID(const std::string &uuidStr)
Loads UUID from a serialized string, the one created by GetSerializationString() method.
std::pair< uint64_t, uint64_t > GetRaw() const
std::string GetSerializationString() const
Returns the UUID as a formated string liable for serialization.
Core systems of the engine are here.
std::size_t operator()(const Cori::Core::UUID &uuid) const noexcept