diff options
Diffstat (limited to 'zencore/uid.cpp')
| -rw-r--r-- | zencore/uid.cpp | 23 |
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 |