Merge "Add support in protoc-gen-cppstream for optional fields in proto3" into main

This commit is contained in:
Ethan Lee
2023-07-25 18:50:10 +00:00
committed by Android (Google) Code Review
2 changed files with 7 additions and 4 deletions

View File

@@ -0,0 +1 @@
mwachens@google.com

View File

@@ -119,9 +119,8 @@ write_message(stringstream& text, const DescriptorProto& message, const string&
text << endl;
}
static void
write_header_file(CodeGeneratorResponse* response, const FileDescriptorProto& file_descriptor)
{
static void write_header_file(const string& request_parameter, CodeGeneratorResponse* response,
const FileDescriptorProto& file_descriptor) {
stringstream text;
text << "// Generated by protoc-gen-cppstream. DO NOT MODIFY." << endl;
@@ -159,6 +158,9 @@ write_header_file(CodeGeneratorResponse* response, const FileDescriptorProto& fi
text << endl;
text << "#endif // " << header << endl;
if (request_parameter.find("experimental_allow_proto3_optional") != string::npos) {
response->set_supported_features(CodeGeneratorResponse::FEATURE_PROTO3_OPTIONAL);
}
CodeGeneratorResponse::File* file_response = response->add_file();
file_response->set_name(make_filename(file_descriptor));
file_response->set_content(text.str());
@@ -182,7 +184,7 @@ int main(int argc, char const *argv[])
for (int i=0; i<N; i++) {
const FileDescriptorProto& file_descriptor = request.proto_file(i);
if (should_generate_for_file(request, file_descriptor.name())) {
write_header_file(&response, file_descriptor);
write_header_file(request.parameter(), &response, file_descriptor);
}
}