commit
3a1cf82c79
@ -1,5 +1,5 @@
|
||||
cmake_minimum_required(VERSION 3.7.0)
|
||||
project(test_uuid)
|
||||
project(test_uuid CXX)
|
||||
|
||||
include_directories(${CMAKE_SOURCE_DIR}/include)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/catch)
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstring>
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include <iomanip>
|
||||
@ -282,6 +283,19 @@ namespace uuids
|
||||
reserved
|
||||
};
|
||||
|
||||
struct uuid_error : public std::runtime_error
|
||||
{
|
||||
explicit uuid_error(std::string_view message)
|
||||
: std::runtime_error(message.data())
|
||||
{
|
||||
}
|
||||
|
||||
explicit uuid_error(char const * message)
|
||||
: std::runtime_error(message)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
// indicated by a bit pattern in octet 6, marked with M in xxxxxxxx-xxxx-Mxxx-xxxx-xxxxxxxxxxxx
|
||||
enum class uuid_version
|
||||
{
|
||||
@ -443,7 +457,7 @@ namespace uuids
|
||||
using value_type = uint8_t;
|
||||
|
||||
public:
|
||||
constexpr uuid() noexcept = default;
|
||||
constexpr uuid() noexcept : data({}) {};
|
||||
|
||||
explicit uuid(gsl::span<value_type, 16> bytes)
|
||||
{
|
||||
@ -501,7 +515,7 @@ namespace uuids
|
||||
constexpr uuid_const_iterator begin() const noexcept { return uuid_const_iterator(&data[0], 0); }
|
||||
constexpr uuid_const_iterator end() const noexcept { return uuid_const_iterator(&data[0], 16); }
|
||||
|
||||
constexpr inline gsl::span<std::byte const, 16> as_bytes() const
|
||||
inline gsl::span<std::byte const, 16> as_bytes() const
|
||||
{
|
||||
return gsl::span<std::byte const, 16>(reinterpret_cast<std::byte const*>(data.data()), 16);
|
||||
}
|
||||
@ -572,19 +586,6 @@ namespace uuids
|
||||
friend std::basic_ostream<Elem, Traits> & operator<<(std::basic_ostream<Elem, Traits> &s, uuid const & id);
|
||||
};
|
||||
|
||||
struct uuid_error : public std::runtime_error
|
||||
{
|
||||
explicit uuid_error(std::string_view message)
|
||||
: std::runtime_error(message.data())
|
||||
{
|
||||
}
|
||||
|
||||
explicit uuid_error(char const * message)
|
||||
: std::runtime_error(message)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
inline bool operator== (uuid const& lhs, uuid const& rhs) noexcept
|
||||
{
|
||||
return lhs.data == rhs.data;
|
||||
@ -869,4 +870,4 @@ namespace std
|
||||
return static_cast<result_type>(hasher(uuids::to_string(uuid)));
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
#include "uuid.h"
|
||||
#include "catch.hpp"
|
||||
|
||||
#include <cstring>
|
||||
#include <set>
|
||||
#include <unordered_set>
|
||||
#include <vector>
|
||||
@ -233,10 +234,10 @@ TEST_CASE("Test iterators", "[iter]")
|
||||
TEST_CASE("Test constexpr", "[const]")
|
||||
{
|
||||
constexpr uuid empty;
|
||||
constexpr bool isnil = empty.is_nil();
|
||||
constexpr size_t size = empty.size();
|
||||
constexpr uuid_variant variant = empty.variant();
|
||||
constexpr uuid_version version = empty.version();
|
||||
[[maybe_unused]] constexpr bool isnil = empty.is_nil();
|
||||
[[maybe_unused]] constexpr size_t size = empty.size();
|
||||
[[maybe_unused]] constexpr uuids::uuid_variant variant = empty.variant();
|
||||
[[maybe_unused]] constexpr uuid_version version = empty.version();
|
||||
}
|
||||
|
||||
TEST_CASE("Test size", "[operators]")
|
||||
@ -288,4 +289,4 @@ TEST_CASE("Test as_bytes", "[ops]")
|
||||
REQUIRE(memcmp(view.data(), arr.data(), arr.size()) == 0);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user