/* * Copyright (c) 2020, Liav A. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include namespace AK { class UUID { public: enum class Endianness { Mixed, Little }; UUID() = default; UUID(Array uuid_buffer); UUID(StringView, Endianness endianness = Endianness::Little); ~UUID() = default; bool operator==(const UUID&) const; bool operator!=(const UUID& other) const { return !(*this == other); } bool operator<=(const UUID&) const = delete; bool operator>=(const UUID&) const = delete; bool operator<(const UUID&) const = delete; bool operator>(const UUID&) const = delete; String to_string() const; bool is_zero() const; private: void convert_string_view_to_little_endian_uuid(StringView); void convert_string_view_to_mixed_endian_uuid(StringView); Array m_uuid_buffer {}; }; } using AK::UUID;