From 4a4a3722716d0270b4eec2bce734922c956b5db1 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Wed, 1 May 2024 20:46:02 +0300 Subject: [PATCH] Add v7 and v8 to uuid::version_type --- include/boost/uuid/uuid.hpp | 8 +++++++- test/test_uuid.cpp | 4 ++-- test/test_uuid_2.cpp | 12 ++++++++++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/include/boost/uuid/uuid.hpp b/include/boost/uuid/uuid.hpp index 5a85ac0d..2db28e8a 100644 --- a/include/boost/uuid/uuid.hpp +++ b/include/boost/uuid/uuid.hpp @@ -109,7 +109,9 @@ struct uuid version_name_based_md5 = 3, version_random_number_based = 4, version_name_based_sha1 = 5, - version_time_based_v6 = 6 + version_time_based_v6 = 6, + version_time_based_v7 = 7, + version_custom_v8 = 8 }; version_type version() const noexcept @@ -129,6 +131,10 @@ struct uuid return version_name_based_sha1; } else if ( (octet9 & 0xF0) == 0x60 ) { return version_time_based_v6; + } else if ( (octet9 & 0xF0) == 0x70 ) { + return version_time_based_v7; + } else if ( (octet9 & 0xF0) == 0x80 ) { + return version_custom_v8; } else { return version_unknown; } diff --git a/test/test_uuid.cpp b/test/test_uuid.cpp index 66f53024..d1343baa 100644 --- a/test/test_uuid.cpp +++ b/test/test_uuid.cpp @@ -120,8 +120,8 @@ int main() , { 0x40, boost::uuids::uuid::version_random_number_based } , { 0x50, boost::uuids::uuid::version_name_based_sha1 } , { 0x60, boost::uuids::uuid::version_time_based_v6 } - , { 0x70, boost::uuids::uuid::version_unknown } - , { 0x80, boost::uuids::uuid::version_unknown } + , { 0x70, boost::uuids::uuid::version_time_based_v7 } + , { 0x80, boost::uuids::uuid::version_custom_v8 } , { 0x90, boost::uuids::uuid::version_unknown } , { 0xa0, boost::uuids::uuid::version_unknown } , { 0xb0, boost::uuids::uuid::version_unknown } diff --git a/test/test_uuid_2.cpp b/test/test_uuid_2.cpp index d8aebf21..856c4cfd 100644 --- a/test/test_uuid_2.cpp +++ b/test/test_uuid_2.cpp @@ -71,7 +71,7 @@ int main() uuid u = uuid_from_string( "017F22E2-79B0-7CC3-98C4-DC0C0C07398F" ); BOOST_TEST_EQ( u.variant(), uuid::variant_rfc_4122 ); - BOOST_TEST_EQ( u.version(), uuid::version_unknown ); + BOOST_TEST_EQ( u.version(), uuid::version_time_based_v7 ); // BOOST_TEST_EQ( u.timestamp_v7(), 0x017F22E279B0 ); } @@ -80,7 +80,15 @@ int main() uuid u = uuid_from_string( "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ); BOOST_TEST_EQ( u.variant(), uuid::variant_rfc_4122 ); - BOOST_TEST_EQ( u.version(), uuid::version_unknown ); + BOOST_TEST_EQ( u.version(), uuid::version_custom_v8 ); + } + + // B.2, UUIDv8 + { + uuid u = uuid_from_string( "5c146b14-3c52-8afd-938a-375d0df1fbf6" ); + + BOOST_TEST_EQ( u.variant(), uuid::variant_rfc_4122 ); + BOOST_TEST_EQ( u.version(), uuid::version_custom_v8 ); } return boost::report_errors();