light/modules/ecs/public/uuid.hpp
light7734 cd886aa8c9
Some checks reported errors
continuous-integration/drone/push Build was killed
refactor: flatten directory structure
2025-07-20 04:46:15 +03:30

38 lines
488 B
C++

#pragma once
#include <random>
namespace lt {
class UUID
{
public:
UUID(uint64_t uuid = -1);
operator uint64_t() const
{
return m_uuid;
}
private:
static std::mt19937_64 s_engine;
static std::uniform_int_distribution<uint64_t> s_distribution;
uint64_t m_uuid;
};
} // namespace lt
namespace std {
template<>
struct hash<lt::UUID>
{
std::size_t operator()(const lt::UUID &uuid) const
{
return hash<uint64_t>()(static_cast<uint64_t>(uuid));
}
};
} // namespace std