mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-25 06:58:38 +00:00
Add support for parsing proto map fields (#7613)
* Add support for proto 3 map to fbs gen * Run clang-format * Update proto golden test * Rename variables * Remove iostream * Remove iostream * Run clang format Co-authored-by: Derek Bailey <derekbailey@google.com>
This commit is contained in:
@@ -201,4 +201,4 @@ void ParseProtoBufAsciiTest() {
|
||||
}
|
||||
|
||||
} // namespace tests
|
||||
} // namespace flatbuffers
|
||||
} // namespace flatbuffers
|
||||
|
||||
24
tests/prototest/GenerateProtoGoldens.sh
Executable file
24
tests/prototest/GenerateProtoGoldens.sh
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright 2022 Google Inc. All rights reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
pushd "$(dirname $0)" >/dev/null
|
||||
|
||||
./../../flatc --proto test.proto && mv test.fbs test_include.golden
|
||||
./../../flatc --proto --gen-all test.proto && mv test.fbs test.golden
|
||||
./../../flatc --proto --oneof-union test.proto && mv test.fbs test_union_include.golden
|
||||
./../../flatc --proto --gen-all --oneof-union test.proto && mv test.fbs test_union.golden
|
||||
./../../flatc --proto --gen-all --proto-namespace-suffix test_namespace_suffix test.proto && mv test.fbs test_suffix.golden
|
||||
./../../flatc --proto --gen-all --proto-namespace-suffix test_namespace_suffix --oneof-union test.proto && mv test.fbs test_union_suffix.golden
|
||||
@@ -54,6 +54,8 @@ table ProtoMessage {
|
||||
u:float = +inf;
|
||||
v:float = +inf;
|
||||
w:float = -inf;
|
||||
grades:[proto.test.ProtoMessage_.GradesEntry];
|
||||
other_message_map:[proto.test.ProtoMessage_.OtherMessageMapEntry];
|
||||
}
|
||||
|
||||
namespace proto.test.ProtoMessage_;
|
||||
@@ -73,3 +75,13 @@ table Anonymous0 {
|
||||
t:proto.test.ProtoMessage_.OtherMessage;
|
||||
}
|
||||
|
||||
table GradesEntry {
|
||||
key:string (key);
|
||||
value:float;
|
||||
}
|
||||
|
||||
table OtherMessageMapEntry {
|
||||
key:string (key);
|
||||
value:proto.test.ProtoMessage_.OtherMessage;
|
||||
}
|
||||
|
||||
|
||||
@@ -71,4 +71,7 @@ message ProtoMessage {
|
||||
optional float u = 34 [default = inf];
|
||||
optional float v = 35 [default = +inf];
|
||||
optional float w = 36 [default = -inf];
|
||||
|
||||
map<string, float> grades = 37;
|
||||
map<string, OtherMessage> other_message_map = 38;
|
||||
}
|
||||
|
||||
@@ -52,6 +52,8 @@ table ProtoMessage {
|
||||
u:float = +inf;
|
||||
v:float = +inf;
|
||||
w:float = -inf;
|
||||
grades:[proto.test.ProtoMessage_.GradesEntry];
|
||||
other_message_map:[proto.test.ProtoMessage_.OtherMessageMapEntry];
|
||||
}
|
||||
|
||||
namespace proto.test.ProtoMessage_;
|
||||
@@ -71,3 +73,13 @@ table Anonymous0 {
|
||||
t:proto.test.ProtoMessage_.OtherMessage;
|
||||
}
|
||||
|
||||
table GradesEntry {
|
||||
key:string (key);
|
||||
value:float;
|
||||
}
|
||||
|
||||
table OtherMessageMapEntry {
|
||||
key:string (key);
|
||||
value:proto.test.ProtoMessage_.OtherMessage;
|
||||
}
|
||||
|
||||
|
||||
@@ -54,6 +54,8 @@ table ProtoMessage {
|
||||
u:float = +inf;
|
||||
v:float = +inf;
|
||||
w:float = -inf;
|
||||
grades:[proto.test.test_namespace_suffix.ProtoMessage_.GradesEntry];
|
||||
other_message_map:[proto.test.test_namespace_suffix.ProtoMessage_.OtherMessageMapEntry];
|
||||
}
|
||||
|
||||
namespace proto.test.test_namespace_suffix.ProtoMessage_;
|
||||
@@ -73,3 +75,13 @@ table Anonymous0 {
|
||||
t:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage;
|
||||
}
|
||||
|
||||
table GradesEntry {
|
||||
key:string (key);
|
||||
value:float;
|
||||
}
|
||||
|
||||
table OtherMessageMapEntry {
|
||||
key:string (key);
|
||||
value:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage;
|
||||
}
|
||||
|
||||
|
||||
@@ -64,6 +64,8 @@ table ProtoMessage {
|
||||
u:float = +inf;
|
||||
v:float = +inf;
|
||||
w:float = -inf;
|
||||
grades:[proto.test.ProtoMessage_.GradesEntry];
|
||||
other_message_map:[proto.test.ProtoMessage_.OtherMessageMapEntry];
|
||||
}
|
||||
|
||||
namespace proto.test.ProtoMessage_;
|
||||
@@ -75,3 +77,13 @@ table OtherMessage {
|
||||
foo_bar_baz:proto.test.ProtoMessage_.OtherMessage_.ProtoEnum;
|
||||
}
|
||||
|
||||
table GradesEntry {
|
||||
key:string (key);
|
||||
value:float;
|
||||
}
|
||||
|
||||
table OtherMessageMapEntry {
|
||||
key:string (key);
|
||||
value:proto.test.ProtoMessage_.OtherMessage;
|
||||
}
|
||||
|
||||
|
||||
@@ -62,6 +62,8 @@ table ProtoMessage {
|
||||
u:float = +inf;
|
||||
v:float = +inf;
|
||||
w:float = -inf;
|
||||
grades:[proto.test.ProtoMessage_.GradesEntry];
|
||||
other_message_map:[proto.test.ProtoMessage_.OtherMessageMapEntry];
|
||||
}
|
||||
|
||||
namespace proto.test.ProtoMessage_;
|
||||
@@ -73,3 +75,13 @@ table OtherMessage {
|
||||
foo_bar_baz:proto.test.ProtoMessage_.OtherMessage_.ProtoEnum;
|
||||
}
|
||||
|
||||
table GradesEntry {
|
||||
key:string (key);
|
||||
value:float;
|
||||
}
|
||||
|
||||
table OtherMessageMapEntry {
|
||||
key:string (key);
|
||||
value:proto.test.ProtoMessage_.OtherMessage;
|
||||
}
|
||||
|
||||
|
||||
@@ -64,6 +64,8 @@ table ProtoMessage {
|
||||
u:float = +inf;
|
||||
v:float = +inf;
|
||||
w:float = -inf;
|
||||
grades:[proto.test.test_namespace_suffix.ProtoMessage_.GradesEntry];
|
||||
other_message_map:[proto.test.test_namespace_suffix.ProtoMessage_.OtherMessageMapEntry];
|
||||
}
|
||||
|
||||
namespace proto.test.test_namespace_suffix.ProtoMessage_;
|
||||
@@ -75,3 +77,13 @@ table OtherMessage {
|
||||
foo_bar_baz:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage_.ProtoEnum;
|
||||
}
|
||||
|
||||
table GradesEntry {
|
||||
key:string (key);
|
||||
value:float;
|
||||
}
|
||||
|
||||
table OtherMessageMapEntry {
|
||||
key:string (key);
|
||||
value:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user