11 [[nodiscard]]
constexpr UUID(uint64 a = 0, uint64 b = 0) noexcept : a(a), b(b) {}
13 [[nodiscard]]
inline UUID(std::string
const& uuidStr) :
UUID(fromString(uuidStr)) {}
15 [[nodiscard]]
inline UUID(std::string_view uuidStr) :
UUID(fromString(std::string{uuidStr})) {}
19 [[nodiscard]]
inline static mce::UUID fromStringHash(std::string_view sv) {
20 return {ll::hash_utils::doHash(sv), ll::hash_utils::doHash2(sv)};
23 [[nodiscard]]
inline explicit operator bool()
const {
return a != 0 && b != 0; }
25 [[nodiscard]]
inline explicit operator std::string()
const {
return asString(); }
27 [[nodiscard]]
constexpr bool operator==(
UUID const& other)
const {
return (a == other.a) && (b == other.b); }
29 [[nodiscard]]
constexpr std::strong_ordering operator<=>(
UUID const& other)
const {
39 MCAPI ::std::string asString()
const;
45 MCAPI
static bool canParse(::std::string
const& in);
47 MCAPI static ::mce::UUID fromString(::std::string
const& in);
53 MCAPI static ::mce::UUID& EMPTY();
55 MCAPI
static uint64& STRING_LENGTH();