aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/yt/string/enum-inl.h
diff options
context:
space:
mode:
authordtorilov <dtorilov@yandex-team.com>2024-08-08 12:23:20 +0300
committerdtorilov <dtorilov@yandex-team.com>2024-08-08 12:33:33 +0300
commited77962244e7018d6b7bd14af51dd890de3ea13f (patch)
tree34462833024cbfd59be31f7c1fdc282aa0fe0cc7 /library/cpp/yt/string/enum-inl.h
parent093af125622cb9955164ea27efff424204bfac2b (diff)
downloadydb-ed77962244e7018d6b7bd14af51dd890de3ea13f.tar.gz
YT-21306: Add EnumHasDefaultValue
d9b67f1778da2d15dd94f7285afe4e3490a233ab
Diffstat (limited to 'library/cpp/yt/string/enum-inl.h')
-rw-r--r--library/cpp/yt/string/enum-inl.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/library/cpp/yt/string/enum-inl.h b/library/cpp/yt/string/enum-inl.h
index 41f7197d15..19ba1f7fe5 100644
--- a/library/cpp/yt/string/enum-inl.h
+++ b/library/cpp/yt/string/enum-inl.h
@@ -87,6 +87,11 @@ T ParseEnum(TStringBuf value)
if (auto optionalResult = TryParseEnum<T>(value)) {
return *optionalResult;
}
+
+ if constexpr (TEnumHasDefaultValue<T>::value) {
+ return GetDefaultValue(T{});
+ }
+
NYT::NDetail::ThrowMalformedEnumValueException(TEnumTraits<T>::GetTypeName(), value);
}