aboutsummaryrefslogtreecommitdiffstats
path: root/util/draft/enum.h
diff options
context:
space:
mode:
authormvel <mvel@yandex-team.ru>2022-02-10 16:45:41 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:45:41 +0300
commit43f5a35593ebc9f6bcea619bb170394ea7ae468e (patch)
treee98df59de24d2ef7c77baed9f41e4875a2fef972 /util/draft/enum.h
parentbd30392c4cc92487950adc375c07adf52da1d592 (diff)
downloadydb-43f5a35593ebc9f6bcea619bb170394ea7ae468e.tar.gz
Restoring authorship annotation for <mvel@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'util/draft/enum.h')
-rw-r--r--util/draft/enum.h42
1 files changed, 21 insertions, 21 deletions
diff --git a/util/draft/enum.h b/util/draft/enum.h
index 9778cbc590..18002b7df2 100644
--- a/util/draft/enum.h
+++ b/util/draft/enum.h
@@ -27,7 +27,7 @@ const V* FindEnumFromStringImpl(K1 key, const std::pair<K2, V>* entries, size_t
return nullptr;
}
-// special version for const char*
+// special version for const char*
template <class V>
const V* FindEnumFromStringImpl(const char* key, const std::pair<const char*, V>* entries, size_t arraySize) {
for (size_t i = 0; i < arraySize; i++)
@@ -39,28 +39,28 @@ const V* FindEnumFromStringImpl(const char* key, const std::pair<const char*, V>
template <class K, class V>
TString PrintEnumItemsImpl(const std::pair<K, V>* entries, size_t arraySize) {
TString result;
- TStringOutput out(result);
- for (size_t i = 0; i < arraySize; i++)
- out << (i ? ", " : "") << "'" << entries[i].first << "'";
- return result;
-}
-
-// special version for const char*
+ TStringOutput out(result);
+ for (size_t i = 0; i < arraySize; i++)
+ out << (i ? ", " : "") << "'" << entries[i].first << "'";
+ return result;
+}
+
+// special version for const char*
template <class V>
TString PrintEnumItemsImpl(const std::pair<const char*, V>* entries, size_t arraySize) {
TString result;
- TStringOutput out(result);
- for (size_t i = 0; i < arraySize; i++)
+ TStringOutput out(result);
+ for (size_t i = 0; i < arraySize; i++)
out << (i ? ", " : "") << "'" << (entries[i].first ? entries[i].first : "<null>") << "'";
- return result;
-}
-
+ return result;
+}
+
template <class K1, class K2, class V>
const V* EnumFromStringImpl(K1 key, const std::pair<K2, V>* entries, size_t arraySize) {
const V* res = FindEnumFromStringImpl(key, entries, arraySize);
if (res)
return res;
-
+
ythrow TEnumNotFoundException() << "Key '" << key << "' not found in enum. Valid options are: " << PrintEnumItemsImpl(entries, arraySize) << ". ";
}
@@ -69,13 +69,13 @@ const K* EnumToStringImpl(V value, const std::pair<K, V>* entries, size_t arrayS
for (size_t i = 0; i < arraySize; i++)
if (entries[i].second == value)
return &entries[i].first;
-
- TEnumNotFoundException exc;
- exc << "Value '" << int(value) << "' not found in enum. Valid values are: ";
- for (size_t i = 0; i < arraySize; i++)
- exc << (i ? ", " : "") << int(entries[i].second);
- exc << ". ";
- ythrow exc;
+
+ TEnumNotFoundException exc;
+ exc << "Value '" << int(value) << "' not found in enum. Valid values are: ";
+ for (size_t i = 0; i < arraySize; i++)
+ exc << (i ? ", " : "") << int(entries[i].second);
+ exc << ". ";
+ ythrow exc;
}
///////////////////////////////////