aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/scheme/scimpl_protobuf.cpp
diff options
context:
space:
mode:
authorisiv <isiv@yandex-team.ru>2022-02-10 16:47:54 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:47:54 +0300
commit40aa65b121746185908e51e32dca11ccee70140b (patch)
treec0748b5dcbade83af788c0abfa89c0383d6b779c /library/cpp/scheme/scimpl_protobuf.cpp
parentf20e3f1949626df2ef9d81d7618ec367b0c34f6b (diff)
downloadydb-40aa65b121746185908e51e32dca11ccee70140b.tar.gz
Restoring authorship annotation for <isiv@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/scheme/scimpl_protobuf.cpp')
-rw-r--r--library/cpp/scheme/scimpl_protobuf.cpp90
1 files changed, 45 insertions, 45 deletions
diff --git a/library/cpp/scheme/scimpl_protobuf.cpp b/library/cpp/scheme/scimpl_protobuf.cpp
index ff2e7e0d59..0c99122c69 100644
--- a/library/cpp/scheme/scimpl_protobuf.cpp
+++ b/library/cpp/scheme/scimpl_protobuf.cpp
@@ -10,7 +10,7 @@
using namespace google::protobuf;
namespace NSc {
- TValue TValue::From(const Message& msg, bool mapAsDict) {
+ TValue TValue::From(const Message& msg, bool mapAsDict) {
TValue v;
const Reflection* r = msg.GetReflection();
TVector<const FieldDescriptor*> fields;
@@ -22,18 +22,18 @@ namespace NSc {
const FieldDescriptor* field = *it;
try {
if (field->is_repeated()) {
- if (field->is_map() && mapAsDict) {
+ if (field->is_map() && mapAsDict) {
auto& elem = v[field->name()];
- for (int i2 = 0; i2 < r->FieldSize(msg, field); ++i2) {
- auto val = FromRepeatedField(msg, field, i2);
- if (val.IsDict()) {
- elem[TStringBuf(val["key"])] = val["value"];
- }
- }
- } else {
- for (int i2 = 0; i2 < r->FieldSize(msg, field); ++i2)
- v[field->name()][i2] = FromRepeatedField(msg, field, i2);
- }
+ for (int i2 = 0; i2 < r->FieldSize(msg, field); ++i2) {
+ auto val = FromRepeatedField(msg, field, i2);
+ if (val.IsDict()) {
+ elem[TStringBuf(val["key"])] = val["value"];
+ }
+ }
+ } else {
+ for (int i2 = 0; i2 < r->FieldSize(msg, field); ++i2)
+ v[field->name()][i2] = FromRepeatedField(msg, field, i2);
+ }
} else {
v[field->name()] = FromField(msg, field);
}
@@ -143,9 +143,9 @@ namespace NSc {
const Descriptor* descriptor = msg.GetDescriptor();
for (int i = 0, count = descriptor->field_count(); i < count; ++i) {
const FieldDescriptor* field = descriptor->field(i);
- if (field->is_map()) {
+ if (field->is_map()) {
ToMapField(msg, field, opts);
- } else if (field->is_repeated()) {
+ } else if (field->is_repeated()) {
ToRepeatedField(msg, field, opts);
} else {
ToField(msg, field, opts);
@@ -203,11 +203,11 @@ namespace NSc {
}
void TValue::ToField(Message& msg, const FieldDescriptor* field, const TProtoOpts& opts) const {
- const TString& name = field->name();
- const TValue& value = Get(name);
+ const TString& name = field->name();
+ const TValue& value = Get(name);
ValueToField(value, msg, field, opts);
- }
-
+ }
+
void TValue::ToEnumField(Message& msg, const FieldDescriptor* field, const TProtoOpts& opts) const {
const EnumDescriptor* enumField = field->enum_type();
@@ -291,39 +291,39 @@ namespace NSc {
}
void TValue::ToMapField(Message& msg, const FieldDescriptor* field, const TProtoOpts& opts) const {
- const TString& name = field->name();
-
- const TValue& fieldValue = Get(name);
- if (fieldValue.IsNull()) {
- return;
- }
-
- if (fieldValue.IsArray()) {
- // read dict from key, value array
+ const TString& name = field->name();
+
+ const TValue& fieldValue = Get(name);
+ if (fieldValue.IsNull()) {
+ return;
+ }
+
+ if (fieldValue.IsArray()) {
+ // read dict from key, value array
ToRepeatedField(msg, field, opts);
- return;
- }
-
- if (!fieldValue.IsDict()) {
+ return;
+ }
+
+ if (!fieldValue.IsDict()) {
if (opts.SkipTypeMismatch) {
return; // leave map field empty
} else {
ythrow TSchemeException() << "invalid type of map field " << name << ": not dict or array";
}
- }
-
- const Reflection* reflection = msg.GetReflection();
-
- auto mutableField = reflection->GetMutableRepeatedFieldRef<Message>(&msg, field);
- for (const auto& value : fieldValue.GetDict()) {
+ }
+
+ const Reflection* reflection = msg.GetReflection();
+
+ auto mutableField = reflection->GetMutableRepeatedFieldRef<Message>(&msg, field);
+ for (const auto& value : fieldValue.GetDict()) {
THolder<Message> entry(mutableField.NewMessage());
- auto entryDesc = entry->GetDescriptor();
- auto keyField = entryDesc->FindFieldByNumber(1);
- auto valueField = entryDesc->FindFieldByNumber(2);
- auto entryReflection = entry->GetReflection();
- entryReflection->SetString(entry.Get(), keyField, TString(value.first));
+ auto entryDesc = entry->GetDescriptor();
+ auto keyField = entryDesc->FindFieldByNumber(1);
+ auto valueField = entryDesc->FindFieldByNumber(2);
+ auto entryReflection = entry->GetReflection();
+ entryReflection->SetString(entry.Get(), keyField, TString(value.first));
ValueToField(value.second, *entry, valueField, opts);
- mutableField.Add(*entry);
- }
- }
+ mutableField.Add(*entry);
+ }
+ }
}