Added Rule of five to UUID

This commit is contained in:
2026-01-04 02:07:52 +02:00
parent 6b5213d605
commit e968585f5b
2 changed files with 38 additions and 3 deletions

View File

@@ -12,15 +12,24 @@
#include <memory>
namespace Tourmaline::Type {
struct UUID {
constexpr static uint8_t BitLength = 128;
constexpr static uint8_t QWORDLength = BitLength / 64;
constexpr static uint8_t ByteLength = BitLength / 8;
[[nodiscard]]
std::string asString() const;
UUID(uint64_t firstHalf, uint64_t secondHalf);
UUID(const std::string &uuid);
UUID(const UUID &uuid);
UUID(UUID &&uuid) noexcept;
UUID &operator=(const UUID &uuid);
UUID &operator=(UUID &&uuid);
~UUID() = default;
private:
std::unique_ptr<uint64_t[]> data = std::make_unique<uint64_t[]>(2);
std::unique_ptr<uint64_t[]> data = std::make_unique<uint64_t[]>(QWORDLength);
};
} // namespace Tourmaline::Type
#endif