diff options
Diffstat (limited to 'src/zencore/uid.cpp')
| -rw-r--r-- | src/zencore/uid.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/zencore/uid.cpp b/src/zencore/uid.cpp index 0f04d70ac..8ef660c7a 100644 --- a/src/zencore/uid.cpp +++ b/src/zencore/uid.cpp @@ -83,6 +83,26 @@ Oid::FromHexString(const std::string_view String) } Oid +Oid::TryFromHexString(const std::string_view String, const Oid& Default) +{ + if (String.length() != StringLength) + { + return Default; + } + + Oid Id; + + if (ParseHexBytes(String.data(), String.size(), reinterpret_cast<uint8_t*>(Id.OidBits))) + { + return Id; + } + else + { + return Default; + } +} + +Oid Oid::FromMemory(const void* Ptr) { Oid Id; @@ -97,6 +117,14 @@ Oid::ToString(char OutString[StringLength]) const OutString[StringLength] = '\0'; } +std::string +Oid::ToString() const +{ + char OutString[StringLength + 1]; + ToString(OutString); + return std::string(OutString, StringLength); +} + StringBuilderBase& Oid::ToString(StringBuilderBase& OutString) const { |