34#include <NDEVR/Vector.h>
35#include <NDEVR/ObjectInfo.h>
68 explicit UUID(
const bool& other) noexcept
154 id[i] =
id[i] ^ *identifier;
170 template<u
int01 t_size,
class t_type>
174 for (
uint01 i = 0; i < t_size; i++)
180 std::size_t value = 0;
181 for (
uint01 i = 0; i < 8; i++)
183 value = value * 256 + ((*this)[i + 0] ^ (*this)[i + 8]);
193 for (
uint01 i = 0; i < 16; i++)
195 if ((*
this)[i] == other[i])
197 return (*
this)[i] < other[i];
203 for (
uint01 i = 0; i < 16; i++)
205 if ((*
this)[i] == other[i])
207 return (*
this)[i] < other[i];
213 for (
uint01 i = 0; i < 16; i++)
215 if ((*
this)[i] == other[i])
217 return (*
this)[i] > other[i];
223 for (
uint01 i = 0; i < 16; i++)
225 if ((*
this)[i] == other[i])
227 return (*
this)[i] > other[i];
234 struct ObjectInfo<UUID, true, false>
236 static const uint01 Dimensions = 16;
237 static const bool Vector =
true;
238 static const bool Buffer =
false;
239 static const bool Primitive =
true;
240 static const bool Pointer =
false;
241 static const bool Unsigned =
false;
242 static const bool Float =
false;
243 static const bool Integer =
false;
244 static const bool Number =
false;
245 static const bool Enum =
false;
246 static const bool String =
true;
247 static const bool Color =
false;
248 static const bool Boolean =
false;
249 static constexpr ObjectInfo<uint01, false, false> VectorSub() {
return ObjectInfo<uint01, false, false>(); }
260 std::size_t operator()(
const NDEVR::UUID& s)
const noexcept
262 std::size_t value = 0;
265 value = value * 256 + (s[i + 0U] ^ s[i + 8U]);
275 struct x4lo {
unsigned __int8 v : 4;
unsigned __int8 _ : 4; };
276 struct x4hi {
unsigned __int8 _ : 4;
unsigned __int8 v : 4; };
277 struct x8 {
unsigned __int8 _; };
278 struct x32 { __int32 _; };
A universally unique identifier (UUID) is a 128-bit number used to identify information in computer s...
Definition UUID.h:60
constexpr size_t hash() const
Definition UUID.h:178
UUID(const uint04 &other) noexcept
Definition UUID.h:83
UUID appendUUID(uint08 offset) const
constexpr UUID()
Definition UUID.h:62
bool operator>=(const UUID &other) const
Definition UUID.h:221
UUID(const sint08 &other) noexcept
Definition UUID.h:108
UUID(const fltp04 &other) noexcept
Definition UUID.h:114
UUID appendUUID(fltp08 offset) const
UUID(const bool &other) noexcept
Definition UUID.h:68
bool operator>(const UUID &other) const
Definition UUID.h:211
uint01 * getUniquePointer() const
UUID(const sint01 &other) noexcept
Definition UUID.h:93
UUID appendUUID(const Vector< t_size, t_type > &offset) const
Definition UUID.h:171
UUID appendUUID(bool offset) const
constexpr size_t operator()() const
Definition UUID.h:187
UUID(const sint02 &other) noexcept
Definition UUID.h:98
UUID appendUUID(const char *identifier) const
UUID(const sint04 &other) noexcept
Definition UUID.h:103
bool operator<=(const UUID &other) const
Definition UUID.h:201
UUID appendUUID(const UUID &offset) const
UUID appendUUID(sint04 offset) const
constexpr UUID(const Vector< 16, uint01 > &bytes) noexcept
Definition UUID.h:65
bool operator<(const UUID &other) const
Definition UUID.h:191
UUID appendUUID(const Vector< 3, fltp04 > &offset) const
UUID(const uint08 &other) noexcept
Definition UUID.h:88
static constexpr UUID CreateUUID(const char *identifier)
Definition UUID.h:148
UUID(const uint01 &other) noexcept
Definition UUID.h:73
UUID appendUUID(sint08 offset) const
UUID(const fltp08 &other) noexcept
Definition UUID.h:119
UUID appendUUID(fltp04 offset) const
UUID appendUUID(uint04 offset) const
UUID(const uint02 &other) noexcept
Definition UUID.h:78
A fixed-size array with better performance compared to dynamic containers.
Definition Vector.hpp:60
int32_t sint04
-Defines an alias representing a 4 byte, signed integer. -Can represent exact integer values -2147483...
Definition BaseValues.hpp:64
int64_t sint08
-Defines an alias representing an 8 byte, signed integer -Can represent exact integer values -9223372...
Definition BaseValues.hpp:71
float fltp04
Defines an alias representing a 4 byte floating-point number Bit layout is as follows: -Sign: 1 bit a...
Definition BaseValues.hpp:127
uint8_t uint01
-Defines an alias representing a 1 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:80
int8_t sint01
-Defines an alias representing a 1 byte, signed integer. -Can represent exact integer values -127 thr...
Definition BaseValues.hpp:50
int16_t sint02
-Defines an alias representing a 2 byte, signed integer. -Can represent exact integer values -32767 t...
Definition BaseValues.hpp:57
uint64_t uint08
-Defines an alias representing an 8 byte, unsigned integer
Definition BaseValues.hpp:106
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:96
uint16_t uint02
-Defines an alias representing a 2 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:88
double fltp08
Defines an alias representing an 8 byte floating-point number.
Definition BaseValues.hpp:149
Definition BitFlag.hpp:249
Defines for a given type (such as sint04, fltp08, UUID, etc) a maximum, minimum, and reserved 'invali...
Definition BaseValues.hpp:233