aboutsummaryrefslogtreecommitdiff
path: root/zencore/uid.cpp
diff options
context:
space:
mode:
authorMartin Ridgers <[email protected]>2021-09-21 11:06:13 +0200
committerMartin Ridgers <[email protected]>2021-09-21 11:06:13 +0200
commit68c951e0f440ffd483795dced737e88152c1a581 (patch)
tree5c0910ca2a85b45fb05dba3ce457b7d156213894 /zencore/uid.cpp
parentMerge main into linux-mac (diff)
parentTrigger storage scrubbing pass at startup (diff)
downloadzen-68c951e0f440ffd483795dced737e88152c1a581.tar.xz
zen-68c951e0f440ffd483795dced737e88152c1a581.zip
Merged main into linux-mac
Diffstat (limited to 'zencore/uid.cpp')
-rw-r--r--zencore/uid.cpp23
1 files changed, 20 insertions, 3 deletions
diff --git a/zencore/uid.cpp b/zencore/uid.cpp
index acf9f9790..d4b708288 100644
--- a/zencore/uid.cpp
+++ b/zencore/uid.cpp
@@ -4,6 +4,7 @@
#include <zencore/endian.h>
#include <zencore/string.h>
+#include <zencore/testing.h>
#include <atomic>
#include <bit>
@@ -12,8 +13,6 @@
#include <set>
#include <unordered_map>
-#include <doctest/doctest.h>
-
namespace zen {
//////////////////////////////////////////////////////////////////////////
@@ -83,10 +82,24 @@ Oid::FromHexString(const std::string_view String)
}
}
+Oid
+Oid::FromMemory(const void* Ptr)
+{
+ Oid Id;
+ memcpy(Id.OidBits, Ptr, sizeof Id);
+ return Id;
+}
+
+void
+Oid::ToString(char OutString[StringLength])
+{
+ ToHexBytes(reinterpret_cast<const uint8_t*>(OidBits), sizeof(Oid::OidBits), OutString);
+}
+
StringBuilderBase&
Oid::ToString(StringBuilderBase& OutString) const
{
- char str[25];
+ char str[StringLength + 1];
ToHexBytes(reinterpret_cast<const uint8_t*>(OidBits), sizeof(Oid::OidBits), str);
str[2 * sizeof(Oid)] = '\0';
@@ -95,6 +108,8 @@ Oid::ToString(StringBuilderBase& OutString) const
return OutString;
}
+#if ZEN_WITH_TESTS
+
TEST_CASE("Oid")
{
SUBCASE("Basic")
@@ -129,4 +144,6 @@ uid_forcelink()
{
}
+#endif
+
} // namespace zen