diff options
author | v01d <v01d@yandex-team.ru> | 2022-02-10 16:49:40 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:49:40 +0300 |
commit | fa8b0420162dd36d4f569fdc3f63da0bef8bb8c7 (patch) | |
tree | ecec7ec14d9261b76724eeb69ab158c45a970dc4 /library/cpp/protobuf/json/util.cpp | |
parent | ac559bd4bb6b11b17dce999cf58c05e08f6087a2 (diff) | |
download | ydb-fa8b0420162dd36d4f569fdc3f63da0bef8bb8c7.tar.gz |
Restoring authorship annotation for <v01d@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'library/cpp/protobuf/json/util.cpp')
-rw-r--r-- | library/cpp/protobuf/json/util.cpp | 102 |
1 files changed, 51 insertions, 51 deletions
diff --git a/library/cpp/protobuf/json/util.cpp b/library/cpp/protobuf/json/util.cpp index 53a065eee2..0145d6c674 100644 --- a/library/cpp/protobuf/json/util.cpp +++ b/library/cpp/protobuf/json/util.cpp @@ -1,54 +1,54 @@ -#include "util.h" - -#include <util/string/ascii.h> - -namespace { - void ToSnakeCaseImpl(TString* const name, std::function<bool(const char)> requiresUnderscore) { - bool requiresChanges = false; - size_t size = name->size(); - for (size_t i = 0; i < name->size(); i++) { - if (IsAsciiUpper(name->at(i))) { - requiresChanges = true; - if (i > 0 && requiresUnderscore(name->at(i - 1))) { - size++; - } - } - } - - if (!requiresChanges) { - return; - } - - if (size != name->size()) { - TString result; - result.reserve(size); - for (size_t i = 0; i < name->size(); i++) { - const char c = name->at(i); - if (IsAsciiUpper(c)) { - if (i > 0 && requiresUnderscore(name->at(i - 1))) { - result += '_'; - } - result += AsciiToLower(c); - } else { - result += c; - } - } - *name = std::move(result); - } else { - name->to_lower(); - } - } -} - -namespace NProtobufJson { - void ToSnakeCase(TString* const name) { - ToSnakeCaseImpl(name, [](const char prev) { return prev != '_'; }); - } - - void ToSnakeCaseDense(TString* const name) { - ToSnakeCaseImpl(name, [](const char prev) { return prev != '_' && !IsAsciiUpper(prev); }); - } +#include "util.h" + +#include <util/string/ascii.h> + +namespace { + void ToSnakeCaseImpl(TString* const name, std::function<bool(const char)> requiresUnderscore) { + bool requiresChanges = false; + size_t size = name->size(); + for (size_t i = 0; i < name->size(); i++) { + if (IsAsciiUpper(name->at(i))) { + requiresChanges = true; + if (i > 0 && requiresUnderscore(name->at(i - 1))) { + size++; + } + } + } + + if (!requiresChanges) { + return; + } + + if (size != name->size()) { + TString result; + result.reserve(size); + for (size_t i = 0; i < name->size(); i++) { + const char c = name->at(i); + if (IsAsciiUpper(c)) { + if (i > 0 && requiresUnderscore(name->at(i - 1))) { + result += '_'; + } + result += AsciiToLower(c); + } else { + result += c; + } + } + *name = std::move(result); + } else { + name->to_lower(); + } + } +} +namespace NProtobufJson { + void ToSnakeCase(TString* const name) { + ToSnakeCaseImpl(name, [](const char prev) { return prev != '_'; }); + } + + void ToSnakeCaseDense(TString* const name) { + ToSnakeCaseImpl(name, [](const char prev) { return prev != '_' && !IsAsciiUpper(prev); }); + } + bool EqualsIgnoringCaseAndUnderscores(TStringBuf s1, TStringBuf s2) { size_t i1 = 0, i2 = 0; @@ -73,4 +73,4 @@ namespace NProtobufJson { return (i1 == s1.size() && i2 == s2.size()); } -} +} |