14 void Reseed(uint64_t seed)
noexcept;
16 void Reseed(uint64_t s0, uint64_t s1)
noexcept;
17 uint64_t
Next() noexcept;
20 uint64_t
_x{ 0x9E3779B97F4A7C15ull };
21 uint64_t
_y{ 0xBF58476D1CE4E5B9ull };
22 uint64_t
_z{ 0x94D049BB133111EBull };
23 uint64_t
_w{ 0xFF51AFD7ED558CCDull };
39 [[nodiscard]]
bool IsNil() const noexcept {
return hi == 0 &&
lo == 0; }
49 [[nodiscard]]
static FUUID FromBytes(
const void* data,
size_t size);
53 [[nodiscard]]
char const*
Format(
char* buf,
size_t bufSize)
const noexcept;
uint64_t _w
Definition UUID.hpp:23
uint64_t _z
Definition UUID.hpp:22
XorShift128(uint64_t seed) noexcept
Definition UUID.hpp:12
uint64_t Next() noexcept
Definition UUID.cpp:56
uint64_t _x
Definition UUID.hpp:20
uint64_t _y
Definition UUID.hpp:21
void Reseed(uint64_t seed) noexcept
Definition UUID.cpp:41
XorShift128(uint64_t s0, uint64_t s1) noexcept
Definition UUID.hpp:13
Lock-free atomic primitives and implementations of data structures.
Definition Allocator.hpp:6
static constexpr FUUID kNilUUID
Definition UUID.hpp:56
constexpr uint64_t FNV1a64(Span< const T > span) noexcept
Definition Container.hpp:509
Definition Allocator.hpp:6
128-bit identifier. Two flavors, both well-formed per RFC 9562:
Definition UUID.hpp:35
bool IsNil() const noexcept
Definition UUID.hpp:39
uint64_t lo
Definition UUID.hpp:37
static FUUID FromString(std::string_view s)
Definition UUID.hpp:50
static FUUID Generate()
Definition UUID.cpp:85
static FUUID FromBytes(const void *data, size_t size)
Definition UUID.cpp:15
friend bool operator<=(FUUID a, FUUID b) noexcept
Definition UUID.hpp:45
friend bool operator>=(FUUID a, FUUID b) noexcept
Definition UUID.hpp:46
friend bool operator>(FUUID a, FUUID b) noexcept
Definition UUID.hpp:44
char const * Format(char *buf, size_t bufSize) const noexcept
Definition UUID.cpp:91
friend bool operator==(FUUID, FUUID) noexcept=default
friend bool operator<(FUUID a, FUUID b) noexcept
Definition UUID.hpp:43
friend bool operator!=(FUUID, FUUID) noexcept=default
uint64_t hi
Definition UUID.hpp:36
size_t operator()(Foundation::Core::FUUID const &id) const noexcept
Definition UUID.hpp:63