6#ifndef ACTIVE_UTILITY_GUID
7#define ACTIVE_UTILITY_GUID
9#include "Active/Utility/String.h"
34 using Raw = std::pair<uint64_t, uint64_t>;
44 Guid(
bool autoGenerate =
false);
54 friend auto operator<=>(
const Guid&,
const Guid&) =
default;
55 friend bool operator==(
const Guid&,
const Guid&) =
default;
56 friend bool operator!=(
const Guid&,
const Guid&) =
default;
57 friend bool operator<(
const Guid&,
const Guid&) =
default;
67 operator std::string()
const {
return string(); }
72 operator bool()
const {
return (m_value.first != 0) || (m_value.second != 0); }
80 const Raw&
raw()
const {
return m_value; }
107struct std::hash<active::utility::Guid> {
109 return static_cast<std::size_t
>(guid.
raw().first ^ guid.
raw().second);
Guid(bool autoGenerate=false)
Definition Guid.cpp:65
static int64_t toInt(const Guid &guid)
Definition Guid.cpp:55
static Guid fromInt(int64_t val)
Definition Guid.cpp:41
std::optional< Guid > Option
Optional.
Definition Guid.h:36
void reset()
Definition Guid.cpp:119
operator std::string() const
Definition Guid.h:67
void clear()
Definition Guid.h:96
const Raw & raw() const
Definition Guid.h:80
A Unicode-aware string class.
Definition String.h:51
Definition Base64Transport.h:11