diff options
| -rw-r--r-- | zencore/include/zencore/uid.h | 3 | ||||
| -rw-r--r-- | zencore/uid.cpp | 11 |
2 files changed, 10 insertions, 4 deletions
diff --git a/zencore/include/zencore/uid.h b/zencore/include/zencore/uid.h index a793b160a..7fc42293f 100644 --- a/zencore/include/zencore/uid.h +++ b/zencore/include/zencore/uid.h @@ -55,7 +55,8 @@ struct Oid [[nodiscard]] static Oid FromHexString(const std::string_view String); StringBuilderBase& ToString(StringBuilderBase& OutString) const; - auto operator<=>(const Oid& rhs) const = default; + auto operator<=>(const Oid& rhs) const = default; + [[nodiscard]] inline operator bool() const { return *this == Zero; } static const Oid Zero; // Min (can be used to signify a "null" value, or for open range queries) static const Oid Max; // Max (can be used for open range queries) diff --git a/zencore/uid.cpp b/zencore/uid.cpp index 9506b305c..347333445 100644 --- a/zencore/uid.cpp +++ b/zencore/uid.cpp @@ -143,9 +143,14 @@ Oid::FromHexString(const std::string_view String) Oid Id; - ParseHexBytes(String.data(), String.size(), reinterpret_cast<uint8_t*>(Id.OidBits)); - - return Id; + if (ParseHexBytes(String.data(), String.size(), reinterpret_cast<uint8_t*>(Id.OidBits))) + { + return Id; + } + else + { + return Oid::Zero; + } } StringBuilderBase& |