protobuf 3.10.3 → 3.10.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.circleci/config.yml +46 -0
- data/CHANGES.md +1 -0
- data/Rakefile +7 -5
- data/lib/protobuf/code_generator.rb +10 -1
- data/lib/protobuf/descriptors/google/protobuf/compiler/plugin.pb.rb +17 -0
- data/lib/protobuf/descriptors/google/protobuf/descriptor.pb.rb +65 -6
- data/lib/protobuf/rpc/error.rb +4 -4
- data/lib/protobuf/rpc/middleware/exception_handler.rb +12 -1
- data/lib/protobuf/version.rb +1 -1
- data/proto/dynamic_discovery.proto +2 -0
- data/proto/google/protobuf/compiler/plugin.proto +37 -1
- data/proto/google/protobuf/descriptor.proto +228 -96
- data/proto/rpc.proto +2 -0
- data/spec/functional/code_generator_spec.rb +2 -2
- data/spec/lib/protobuf/code_generator_spec.rb +1 -1
- data/spec/lib/protobuf/rpc/middleware/exception_handler_spec.rb +3 -3
- data/spec/lib/protobuf/rpc/stat_spec.rb +1 -1
- data/spec/support/google/protobuf/descriptor.pb.rb +360 -0
- data/spec/support/protos/map-test.bin +0 -0
- data/spec/support/protos/map-test.pb.rb +2 -2
- data/spec/support/protos/map-test.proto +3 -3
- data/spec/support/protos/optional_v3_fields.pb.rb +22 -0
- data/spec/support/protos/optional_v3_fields.proto +6 -0
- metadata +13 -9
- data/.travis.yml +0 -40
- data/install-protobuf.sh +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ea13b6353fc56a116dc91e87662ffaaac8c4b8cb27dd85be480797e7ef922d2
|
4
|
+
data.tar.gz: 6f5804860b80527356f1a6cec79def05499abd4a5536038c453e7e65cd05c237
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a49491b32df80049107f59673008d6f8ac64977abcae332ad407c120f9f9628f4c3b47dbd5f809b8843ce477e02286da3fc1242131a8919ddac7170e2002bbf4
|
7
|
+
data.tar.gz: b5352584a6c79b77ce1360fb0ce6a03c00a165cdfb8f92b96aaf61d37a3acf7a89f7bd4bd2fc8a3f1c879434b941db3e0689040edf5988cee2c05cb5bfd0a3a5
|
@@ -0,0 +1,46 @@
|
|
1
|
+
version: 2.1
|
2
|
+
|
3
|
+
jobs:
|
4
|
+
# skipping build step because Gemfile.lock is not included in the source
|
5
|
+
# this makes the bundler caching step a noop
|
6
|
+
test:
|
7
|
+
parameters:
|
8
|
+
ruby-image:
|
9
|
+
type: string
|
10
|
+
docker:
|
11
|
+
- image: << parameters.ruby-image >>
|
12
|
+
steps:
|
13
|
+
- run:
|
14
|
+
name: Install protobuf compiler
|
15
|
+
command: |
|
16
|
+
archive=protoc-3.16.0-linux-x86_64
|
17
|
+
curl -O -L https://github.com/protocolbuffers/protobuf/releases/download/v3.16.0/$archive.zip
|
18
|
+
sudo unzip -d '/usr/local' $archive.zip 'bin/*' 'include/*'
|
19
|
+
sudo chown -R $(whoami) /usr/local/bin/protoc /usr/local/include/google
|
20
|
+
rm -rf $archive.zip
|
21
|
+
- run:
|
22
|
+
command: protoc --version
|
23
|
+
- run:
|
24
|
+
command: sudo apt-get update
|
25
|
+
- run:
|
26
|
+
message: Install ZeroMQ
|
27
|
+
command: sudo apt-get -y install libzmq3-dev
|
28
|
+
- checkout
|
29
|
+
- run:
|
30
|
+
command: gem install bundler
|
31
|
+
- run:
|
32
|
+
command: bundle install
|
33
|
+
- run:
|
34
|
+
command: bundle exec rake
|
35
|
+
|
36
|
+
workflows:
|
37
|
+
build_and_test:
|
38
|
+
jobs:
|
39
|
+
- test:
|
40
|
+
matrix:
|
41
|
+
parameters:
|
42
|
+
ruby-image:
|
43
|
+
- circleci/jruby:9.2.6.0-jdk
|
44
|
+
- circleci/jruby:9.1.17.0-jdk
|
45
|
+
- circleci/ruby:2.5
|
46
|
+
- circleci/ruby:2.7
|
data/CHANGES.md
CHANGED
data/Rakefile
CHANGED
@@ -22,10 +22,12 @@ namespace :compile do
|
|
22
22
|
task :spec do
|
23
23
|
proto_path = ::File.expand_path('../spec/support/', __FILE__)
|
24
24
|
proto_files = Dir[File.join(proto_path, '**', '*.proto')]
|
25
|
-
cmd = %(protoc --plugin=./bin/protoc-gen-ruby --ruby_out=#{proto_path} -I #{proto_path} #{proto_files.join(' ')})
|
26
25
|
|
27
|
-
|
28
|
-
|
26
|
+
proto_files.each do |proto_file|
|
27
|
+
cmd = %(protoc --plugin=protoc-gen-ruby-protobuf=./bin/protoc-gen-ruby --ruby-protobuf_out=#{proto_path} -I #{proto_path} #{proto_file})
|
28
|
+
puts cmd
|
29
|
+
system(cmd) || fail("Failed to compile spec proto: #{proto_file}")
|
30
|
+
end
|
29
31
|
end
|
30
32
|
|
31
33
|
desc 'Compile rpc protos in protos/ directory'
|
@@ -35,10 +37,10 @@ namespace :compile do
|
|
35
37
|
output_dir = ::File.expand_path('../tmp/rpc', __FILE__)
|
36
38
|
::FileUtils.mkdir_p(output_dir)
|
37
39
|
|
38
|
-
cmd = %(protoc --plugin=./bin/protoc-gen-ruby --
|
40
|
+
cmd = %(protoc --plugin=protoc-gen-ruby-protobuf=./bin/protoc-gen-ruby --ruby-protobuf_out=#{output_dir} -I #{proto_path} #{proto_files.join(' ')})
|
39
41
|
|
40
42
|
puts cmd
|
41
|
-
system(cmd)
|
43
|
+
system(cmd) || fail("Failed to compile rpc protos!")
|
42
44
|
|
43
45
|
files = {
|
44
46
|
'tmp/rpc/dynamic_discovery.pb.rb' => 'lib/protobuf/rpc',
|
@@ -46,7 +46,16 @@ module Protobuf
|
|
46
46
|
generate_file(file_descriptor)
|
47
47
|
end
|
48
48
|
|
49
|
-
::Google::Protobuf::Compiler::CodeGeneratorResponse.encode(
|
49
|
+
::Google::Protobuf::Compiler::CodeGeneratorResponse.encode(
|
50
|
+
:file => generated_files,
|
51
|
+
:supported_features => supported_features,
|
52
|
+
)
|
53
|
+
end
|
54
|
+
|
55
|
+
def supported_features
|
56
|
+
# The only available feature is proto3 with optional fields.
|
57
|
+
# This is backwards compatible with proto2 optional fields.
|
58
|
+
::Google::Protobuf::Compiler::CodeGeneratorResponse::Feature::FEATURE_PROTO3_OPTIONAL.to_i
|
50
59
|
end
|
51
60
|
|
52
61
|
Protobuf::Field::BaseField.module_eval do
|
@@ -19,8 +19,14 @@ module Google
|
|
19
19
|
##
|
20
20
|
# Message Classes
|
21
21
|
#
|
22
|
+
class Version < ::Protobuf::Message; end
|
22
23
|
class CodeGeneratorRequest < ::Protobuf::Message; end
|
23
24
|
class CodeGeneratorResponse < ::Protobuf::Message
|
25
|
+
class Feature < ::Protobuf::Enum
|
26
|
+
define :FEATURE_NONE, 0
|
27
|
+
define :FEATURE_PROTO3_OPTIONAL, 1
|
28
|
+
end
|
29
|
+
|
24
30
|
class File < ::Protobuf::Message; end
|
25
31
|
|
26
32
|
end
|
@@ -32,15 +38,24 @@ module Google
|
|
32
38
|
#
|
33
39
|
set_option :java_package, "com.google.protobuf.compiler"
|
34
40
|
set_option :java_outer_classname, "PluginProtos"
|
41
|
+
set_option :go_package, "google.golang.org/protobuf/types/pluginpb"
|
35
42
|
|
36
43
|
|
37
44
|
##
|
38
45
|
# Message Fields
|
39
46
|
#
|
47
|
+
class Version
|
48
|
+
optional :int32, :major, 1
|
49
|
+
optional :int32, :minor, 2
|
50
|
+
optional :int32, :patch, 3
|
51
|
+
optional :string, :suffix, 4
|
52
|
+
end
|
53
|
+
|
40
54
|
class CodeGeneratorRequest
|
41
55
|
repeated :string, :file_to_generate, 1
|
42
56
|
optional :string, :parameter, 2
|
43
57
|
repeated ::Google::Protobuf::FileDescriptorProto, :proto_file, 15
|
58
|
+
optional ::Google::Protobuf::Compiler::Version, :compiler_version, 3
|
44
59
|
end
|
45
60
|
|
46
61
|
class CodeGeneratorResponse
|
@@ -48,9 +63,11 @@ module Google
|
|
48
63
|
optional :string, :name, 1
|
49
64
|
optional :string, :insertion_point, 2
|
50
65
|
optional :string, :content, 15
|
66
|
+
optional ::Google::Protobuf::GeneratedCodeInfo, :generated_code_info, 16
|
51
67
|
end
|
52
68
|
|
53
69
|
optional :string, :error, 1
|
70
|
+
optional :uint64, :supported_features, 2
|
54
71
|
repeated ::Google::Protobuf::Compiler::CodeGeneratorResponse::File, :file, 15
|
55
72
|
end
|
56
73
|
|
@@ -20,6 +20,7 @@ module Google
|
|
20
20
|
|
21
21
|
end
|
22
22
|
|
23
|
+
class ExtensionRangeOptions < ::Protobuf::Message; end
|
23
24
|
class FieldDescriptorProto < ::Protobuf::Message
|
24
25
|
class Type < ::Protobuf::Enum
|
25
26
|
define :TYPE_DOUBLE, 1
|
@@ -51,7 +52,11 @@ module Google
|
|
51
52
|
end
|
52
53
|
|
53
54
|
class OneofDescriptorProto < ::Protobuf::Message; end
|
54
|
-
class EnumDescriptorProto < ::Protobuf::Message
|
55
|
+
class EnumDescriptorProto < ::Protobuf::Message
|
56
|
+
class EnumReservedRange < ::Protobuf::Message; end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
55
60
|
class EnumValueDescriptorProto < ::Protobuf::Message; end
|
56
61
|
class ServiceDescriptorProto < ::Protobuf::Message; end
|
57
62
|
class MethodDescriptorProto < ::Protobuf::Message; end
|
@@ -80,10 +85,19 @@ module Google
|
|
80
85
|
|
81
86
|
end
|
82
87
|
|
88
|
+
class OneofOptions < ::Protobuf::Message; end
|
83
89
|
class EnumOptions < ::Protobuf::Message; end
|
84
90
|
class EnumValueOptions < ::Protobuf::Message; end
|
85
91
|
class ServiceOptions < ::Protobuf::Message; end
|
86
|
-
class MethodOptions < ::Protobuf::Message
|
92
|
+
class MethodOptions < ::Protobuf::Message
|
93
|
+
class IdempotencyLevel < ::Protobuf::Enum
|
94
|
+
define :IDEMPOTENCY_UNKNOWN, 0
|
95
|
+
define :NO_SIDE_EFFECTS, 1
|
96
|
+
define :IDEMPOTENT, 2
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
100
|
+
|
87
101
|
class UninterpretedOption < ::Protobuf::Message
|
88
102
|
class NamePart < ::Protobuf::Message; end
|
89
103
|
|
@@ -94,6 +108,11 @@ module Google
|
|
94
108
|
|
95
109
|
end
|
96
110
|
|
111
|
+
class GeneratedCodeInfo < ::Protobuf::Message
|
112
|
+
class Annotation < ::Protobuf::Message; end
|
113
|
+
|
114
|
+
end
|
115
|
+
|
97
116
|
|
98
117
|
|
99
118
|
##
|
@@ -102,7 +121,8 @@ module Google
|
|
102
121
|
set_option :java_package, "com.google.protobuf"
|
103
122
|
set_option :java_outer_classname, "DescriptorProtos"
|
104
123
|
set_option :optimize_for, ::Google::Protobuf::FileOptions::OptimizeMode::SPEED
|
105
|
-
set_option :go_package, "
|
124
|
+
set_option :go_package, "google.golang.org/protobuf/types/descriptorpb"
|
125
|
+
set_option :cc_enable_arenas, true
|
106
126
|
set_option :objc_class_prefix, "GPB"
|
107
127
|
set_option :csharp_namespace, "Google.Protobuf.Reflection"
|
108
128
|
|
@@ -133,6 +153,7 @@ module Google
|
|
133
153
|
class ExtensionRange
|
134
154
|
optional :int32, :start, 1
|
135
155
|
optional :int32, :end, 2
|
156
|
+
optional ::Google::Protobuf::ExtensionRangeOptions, :options, 3
|
136
157
|
end
|
137
158
|
|
138
159
|
class ReservedRange
|
@@ -152,6 +173,12 @@ module Google
|
|
152
173
|
repeated :string, :reserved_name, 10
|
153
174
|
end
|
154
175
|
|
176
|
+
class ExtensionRangeOptions
|
177
|
+
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
178
|
+
# Extension Fields
|
179
|
+
extensions 1000...536870912
|
180
|
+
end
|
181
|
+
|
155
182
|
class FieldDescriptorProto
|
156
183
|
optional :string, :name, 1
|
157
184
|
optional :int32, :number, 3
|
@@ -163,16 +190,25 @@ module Google
|
|
163
190
|
optional :int32, :oneof_index, 9
|
164
191
|
optional :string, :json_name, 10
|
165
192
|
optional ::Google::Protobuf::FieldOptions, :options, 8
|
193
|
+
optional :bool, :proto3_optional, 17
|
166
194
|
end
|
167
195
|
|
168
196
|
class OneofDescriptorProto
|
169
197
|
optional :string, :name, 1
|
198
|
+
optional ::Google::Protobuf::OneofOptions, :options, 2
|
170
199
|
end
|
171
200
|
|
172
201
|
class EnumDescriptorProto
|
202
|
+
class EnumReservedRange
|
203
|
+
optional :int32, :start, 1
|
204
|
+
optional :int32, :end, 2
|
205
|
+
end
|
206
|
+
|
173
207
|
optional :string, :name, 1
|
174
208
|
repeated ::Google::Protobuf::EnumValueDescriptorProto, :value, 2
|
175
209
|
optional ::Google::Protobuf::EnumOptions, :options, 3
|
210
|
+
repeated ::Google::Protobuf::EnumDescriptorProto::EnumReservedRange, :reserved_range, 4
|
211
|
+
repeated :string, :reserved_name, 5
|
176
212
|
end
|
177
213
|
|
178
214
|
class EnumValueDescriptorProto
|
@@ -200,18 +236,23 @@ module Google
|
|
200
236
|
optional :string, :java_package, 1
|
201
237
|
optional :string, :java_outer_classname, 8
|
202
238
|
optional :bool, :java_multiple_files, 10, :default => false
|
203
|
-
optional :bool, :java_generate_equals_and_hash, 20, :
|
239
|
+
optional :bool, :java_generate_equals_and_hash, 20, :deprecated => true
|
204
240
|
optional :bool, :java_string_check_utf8, 27, :default => false
|
205
241
|
optional ::Google::Protobuf::FileOptions::OptimizeMode, :optimize_for, 9, :default => ::Google::Protobuf::FileOptions::OptimizeMode::SPEED
|
206
242
|
optional :string, :go_package, 11
|
207
243
|
optional :bool, :cc_generic_services, 16, :default => false
|
208
244
|
optional :bool, :java_generic_services, 17, :default => false
|
209
245
|
optional :bool, :py_generic_services, 18, :default => false
|
246
|
+
optional :bool, :php_generic_services, 42, :default => false
|
210
247
|
optional :bool, :deprecated, 23, :default => false
|
211
|
-
optional :bool, :cc_enable_arenas, 31, :default =>
|
248
|
+
optional :bool, :cc_enable_arenas, 31, :default => true
|
212
249
|
optional :string, :objc_class_prefix, 36
|
213
250
|
optional :string, :csharp_namespace, 37
|
214
|
-
optional :
|
251
|
+
optional :string, :swift_prefix, 39
|
252
|
+
optional :string, :php_class_prefix, 40
|
253
|
+
optional :string, :php_namespace, 41
|
254
|
+
optional :string, :php_metadata_namespace, 44
|
255
|
+
optional :string, :ruby_package, 45
|
215
256
|
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
216
257
|
# Extension Fields
|
217
258
|
extensions 1000...536870912
|
@@ -239,6 +280,12 @@ module Google
|
|
239
280
|
extensions 1000...536870912
|
240
281
|
end
|
241
282
|
|
283
|
+
class OneofOptions
|
284
|
+
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
285
|
+
# Extension Fields
|
286
|
+
extensions 1000...536870912
|
287
|
+
end
|
288
|
+
|
242
289
|
class EnumOptions
|
243
290
|
optional :bool, :allow_alias, 2
|
244
291
|
optional :bool, :deprecated, 3, :default => false
|
@@ -263,6 +310,7 @@ module Google
|
|
263
310
|
|
264
311
|
class MethodOptions
|
265
312
|
optional :bool, :deprecated, 33, :default => false
|
313
|
+
optional ::Google::Protobuf::MethodOptions::IdempotencyLevel, :idempotency_level, 34, :default => ::Google::Protobuf::MethodOptions::IdempotencyLevel::IDEMPOTENCY_UNKNOWN
|
266
314
|
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
267
315
|
# Extension Fields
|
268
316
|
extensions 1000...536870912
|
@@ -295,6 +343,17 @@ module Google
|
|
295
343
|
repeated ::Google::Protobuf::SourceCodeInfo::Location, :location, 1
|
296
344
|
end
|
297
345
|
|
346
|
+
class GeneratedCodeInfo
|
347
|
+
class Annotation
|
348
|
+
repeated :int32, :path, 1, :packed => true
|
349
|
+
optional :string, :source_file, 2
|
350
|
+
optional :int32, :begin, 3
|
351
|
+
optional :int32, :end, 4
|
352
|
+
end
|
353
|
+
|
354
|
+
repeated ::Google::Protobuf::GeneratedCodeInfo::Annotation, :annotation, 1
|
355
|
+
end
|
356
|
+
|
298
357
|
end
|
299
358
|
|
300
359
|
end
|
data/lib/protobuf/rpc/error.rb
CHANGED
@@ -13,12 +13,12 @@ module Protobuf
|
|
13
13
|
super message
|
14
14
|
end
|
15
15
|
|
16
|
-
def encode
|
17
|
-
to_response.encode
|
16
|
+
def encode(args = {})
|
17
|
+
to_response(args).encode
|
18
18
|
end
|
19
19
|
|
20
|
-
def to_response
|
21
|
-
::Protobuf::Socketrpc::Response.new(:error => message, :error_reason => error_type)
|
20
|
+
def to_response(args = {})
|
21
|
+
::Protobuf::Socketrpc::Response.new({ :error => message, :error_reason => error_type }.merge(args))
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
@@ -22,7 +22,7 @@ module Protobuf
|
|
22
22
|
# Rescue exceptions, re-wrap them as generic Protobuf errors,
|
23
23
|
# and encode them
|
24
24
|
env.response = wrap_exception(exception)
|
25
|
-
env.encoded_response = env.response
|
25
|
+
env.encoded_response = wrap_and_encode_with_server(env.response, env)
|
26
26
|
env
|
27
27
|
end
|
28
28
|
|
@@ -34,6 +34,17 @@ module Protobuf
|
|
34
34
|
exception = RpcFailed.new(exception.message) unless exception.is_a?(PbError)
|
35
35
|
exception
|
36
36
|
end
|
37
|
+
|
38
|
+
# If the response is a PbError, it won't have the server merged into the response proto.
|
39
|
+
# We should add it here since exception handler is always at the bottom of the middleware
|
40
|
+
# stack. Without this, the server hostname in the client rpc log will not be set.
|
41
|
+
def wrap_and_encode_with_server(response, env)
|
42
|
+
if response.is_a?(PbError)
|
43
|
+
response.encode(:server => env.server)
|
44
|
+
else
|
45
|
+
response.encode
|
46
|
+
end
|
47
|
+
end
|
37
48
|
end
|
38
49
|
end
|
39
50
|
end
|
data/lib/protobuf/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
// Protocol Buffers - Google's data interchange format
|
2
2
|
// Copyright 2008 Google Inc. All rights reserved.
|
3
|
-
//
|
3
|
+
// https://developers.google.com/protocol-buffers/
|
4
4
|
//
|
5
5
|
// Redistribution and use in source and binary forms, with or without
|
6
6
|
// modification, are permitted provided that the following conditions are
|
@@ -44,12 +44,26 @@
|
|
44
44
|
// plugin should be named "protoc-gen-$NAME", and will then be used when the
|
45
45
|
// flag "--${NAME}_out" is passed to protoc.
|
46
46
|
|
47
|
+
syntax = "proto2";
|
48
|
+
|
47
49
|
package google.protobuf.compiler;
|
48
50
|
option java_package = "com.google.protobuf.compiler";
|
49
51
|
option java_outer_classname = "PluginProtos";
|
50
52
|
|
53
|
+
option go_package = "google.golang.org/protobuf/types/pluginpb";
|
54
|
+
|
51
55
|
import "google/protobuf/descriptor.proto";
|
52
56
|
|
57
|
+
// The version number of protocol compiler.
|
58
|
+
message Version {
|
59
|
+
optional int32 major = 1;
|
60
|
+
optional int32 minor = 2;
|
61
|
+
optional int32 patch = 3;
|
62
|
+
// A suffix for alpha, beta or rc release, e.g., "alpha-1", "rc2". It should
|
63
|
+
// be empty for mainline stable releases.
|
64
|
+
optional string suffix = 4;
|
65
|
+
}
|
66
|
+
|
53
67
|
// An encoded CodeGeneratorRequest is written to the plugin's stdin.
|
54
68
|
message CodeGeneratorRequest {
|
55
69
|
// The .proto files that were explicitly listed on the command-line. The
|
@@ -71,7 +85,14 @@ message CodeGeneratorRequest {
|
|
71
85
|
// the entire set into memory at once. However, as of this writing, this
|
72
86
|
// is not similarly optimized on protoc's end -- it will store all fields in
|
73
87
|
// memory at once before sending them to the plugin.
|
88
|
+
//
|
89
|
+
// Type names of fields and extensions in the FileDescriptorProto are always
|
90
|
+
// fully qualified.
|
74
91
|
repeated FileDescriptorProto proto_file = 15;
|
92
|
+
|
93
|
+
// The version number of protocol compiler.
|
94
|
+
optional Version compiler_version = 3;
|
95
|
+
|
75
96
|
}
|
76
97
|
|
77
98
|
// The plugin writes an encoded CodeGeneratorResponse to stdout.
|
@@ -86,6 +107,16 @@ message CodeGeneratorResponse {
|
|
86
107
|
// exiting with a non-zero status code.
|
87
108
|
optional string error = 1;
|
88
109
|
|
110
|
+
// A bitmask of supported features that the code generator supports.
|
111
|
+
// This is a bitwise "or" of values from the Feature enum.
|
112
|
+
optional uint64 supported_features = 2;
|
113
|
+
|
114
|
+
// Sync with code_generator.h.
|
115
|
+
enum Feature {
|
116
|
+
FEATURE_NONE = 0;
|
117
|
+
FEATURE_PROTO3_OPTIONAL = 1;
|
118
|
+
}
|
119
|
+
|
89
120
|
// Represents a single generated file.
|
90
121
|
message File {
|
91
122
|
// The file name, relative to the output directory. The name must not
|
@@ -142,6 +173,11 @@ message CodeGeneratorResponse {
|
|
142
173
|
|
143
174
|
// The file contents.
|
144
175
|
optional string content = 15;
|
176
|
+
|
177
|
+
// Information describing the file content being inserted. If an insertion
|
178
|
+
// point is used, this information will be appropriately offset and inserted
|
179
|
+
// into the code generation metadata for the generated files.
|
180
|
+
optional GeneratedCodeInfo generated_code_info = 16;
|
145
181
|
}
|
146
182
|
repeated File file = 15;
|
147
183
|
}
|