aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zencore/include/zencore/uid.h3
-rw-r--r--zencore/uid.cpp11
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&