124 d = std::move(
val.d);
152 return std::memcmp(d.
data(),
other.d.data(), 16) < 0;
157 return std::memcmp(d.
data(),
other.d.data(), 16) > 0;
162 return std::memcmp(d.
data(),
other.d.data(), 16) <= 0;
167 return std::memcmp(d.
data(),
other.d.data(), 16) >= 0;
189 return (d[6] >> 4) & 0x0F;
bool isZero() const
Returns true if all elements are zero.
Definition array.h:297
T * data()
Returns a mutable pointer to the underlying contiguous storage.
Definition array.h:281
Lightweight error code wrapper for the promeki library.
Definition error.h:39
Dynamic array container wrapping std::vector.
Definition list.h:40
Encoding-aware string class with copy-on-write semantics.
Definition string.h:35
Universally Unique Identifier (UUID).
Definition uuid.h:34
bool operator>=(const UUID &other) const
Greater-than-or-equal comparison for ordering (lexicographic).
Definition uuid.h:166
int version() const
Returns the UUID version number.
Definition uuid.h:187
UUID(const char *str)
Constructs a UUID by parsing a C-string.
Definition uuid.h:111
bool isValid() const
Returns true if this UUID is not all-zero.
Definition uuid.h:179
bool operator>(const UUID &other) const
Greater-than comparison for ordering (lexicographic).
Definition uuid.h:156
bool operator<(const UUID &other) const
Less-than comparison for ordering (lexicographic).
Definition uuid.h:151
UUID(const String &str)
Constructs a UUID by parsing a String.
Definition uuid.h:114
UUID(const DataFormat &val)
Constructs a UUID from raw 16-byte data.
Definition uuid.h:105
UUID & operator=(const UUID &val)
Copy assignment operator.
Definition uuid.h:117
static UUID fromString(const char *string, Error *err=nullptr)
Parses a UUID from a string representation.
UUID()
Constructs an invalid (all-zero) UUID.
Definition uuid.h:96
const DataFormat & data() const
Returns a const reference to the raw 16-byte data.
Definition uuid.h:202
String toString() const
Returns the standard string representation of the UUID.
static UUID generateV7(int64_t timestampMs=-1)
Generates a version 7 (Unix timestamp + random) UUID.
static UUID generateV1()
Generates a version 1 (timestamp + MAC) UUID.
UUID & operator=(const DataFormat &&val)
Move-assigns from raw 16-byte data.
Definition uuid.h:135
static UUID generateV4()
Generates a random version 4 UUID.
bool operator!=(const UUID &other) const
Returns true if the UUIDs are not equal.
Definition uuid.h:146
const uint8_t * raw() const
Returns a pointer to the raw byte data.
Definition uuid.h:210
UUID & operator=(const DataFormat &val)
Assigns from raw 16-byte data.
Definition uuid.h:129
static UUID generate(int version=4)
Convenience generator that dispatches to the appropriate generateVn() function.
static UUID generateV3(const UUID &ns, const String &name)
Generates a version 3 (MD5 namespace) UUID.
UUID(const UUID &&u)
Move constructor.
Definition uuid.h:102
Array< uint8_t, 16 > DataFormat
Raw 16-byte storage format for a UUID.
Definition uuid.h:37
UUID & operator=(const UUID &&val)
Move assignment operator.
Definition uuid.h:123
static UUID generateV5(const UUID &ns, const String &name)
Generates a version 5 (SHA-1 namespace) UUID.
UUID(const UUID &u)
Copy constructor.
Definition uuid.h:99
UUID(const DataFormat &&val)
Move-constructs a UUID from raw 16-byte data.
Definition uuid.h:108
bool operator==(const UUID &other) const
Returns true if both UUIDs are equal.
Definition uuid.h:141
bool operator<=(const UUID &other) const
Less-than-or-equal comparison for ordering (lexicographic).
Definition uuid.h:161
#define PROMEKI_NAMESPACE_BEGIN
Starts a promeki namespace block.
Definition namespace.h:14
#define PROMEKI_NAMESPACE_END
Ends a promeki namespace block.
Definition namespace.h:19