1#ifndef NEFORCE_CORE_UTILITY_UUID_HPP__
2#define NEFORCE_CORE_UTILITY_UUID_HPP__
15NEFORCE_BEGIN_NAMESPACE__
98 NEFORCE_NODISCARD
int version() const noexcept {
return (data_[6] >> 4) & 0x0F; }
104 NEFORCE_NODISCARD
bool is_v4() const noexcept {
return version() == 4; }
110 NEFORCE_NODISCARD
bool is_v7() const noexcept {
return version() == 7; }
140 NEFORCE_NODISCARD
auto begin() const noexcept {
return data_.begin(); }
146 NEFORCE_NODISCARD
auto end() const noexcept {
return data_.end(); }
160 NEFORCE_NODISCARD
size_t to_hash() const noexcept;
166NEFORCE_BEGIN_LITERALS__
181NEFORCE_NODISCARD inline
uuid operator
""_uuid(const
char* str,
size_t len) {
return uuid(
string_view(str, len)); }
185NEFORCE_END_LITERALS__
187NEFORCE_END_NAMESPACE__
NEFORCE_NODISCARD memory_view< const byte_t, 16 > bytes() const noexcept
获取UUID的字节视图
NEFORCE_NODISCARD bool is_v7() const noexcept
检查是否为版本7
static uuid v4() noexcept
静态方法:生成版本4 UUID
NEFORCE_NODISCARD string to_string() const
转换为标准UUID字符串
NEFORCE_NODISCARD auto begin() const noexcept
获取起始迭代器
void generate_v7() noexcept
生成UUID版本7(时间戳排序)
NEFORCE_NODISCARD auto end() const noexcept
获取结束迭代器
static uuid v7() noexcept
静态方法:生成版本7 UUID
NEFORCE_NODISCARD bool is_v4() const noexcept
检查是否为版本4
NEFORCE_NODISCARD optional< uint64_t > timestamp_v7() const noexcept
获取UUID版本7的时间戳
uuid(memory_view< const byte_t, 16 > bytes) noexcept
从16字节数组构造UUID
void generate_v4() noexcept
生成UUID版本4(随机)
uuid(string_view bytes)
从字符串构造UUID
NEFORCE_NODISCARD int version() const noexcept
获取UUID版本号
unsigned char byte_t
字节类型,定义为无符号字符
NEFORCE_CONSTEXPR14 void memory_zero(void *dest, const size_t count) noexcept
将内存区域清零
basic_string_view< char > string_view
字符字符串视图