google-protobuf 3.17.2 → 3.23.4

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of google-protobuf might be problematic. Click here for more details.

Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/ext/google/protobuf_c/convert.c +128 -116
  3. data/ext/google/protobuf_c/convert.h +12 -9
  4. data/ext/google/protobuf_c/defs.c +235 -1529
  5. data/ext/google/protobuf_c/defs.h +19 -19
  6. data/ext/google/protobuf_c/extconf.rb +12 -6
  7. data/ext/google/protobuf_c/map.c +105 -109
  8. data/ext/google/protobuf_c/map.h +7 -8
  9. data/ext/google/protobuf_c/message.c +447 -342
  10. data/ext/google/protobuf_c/message.h +22 -19
  11. data/ext/google/protobuf_c/protobuf.c +71 -59
  12. data/ext/google/protobuf_c/protobuf.h +13 -10
  13. data/ext/google/protobuf_c/repeated_field.c +83 -85
  14. data/ext/google/protobuf_c/repeated_field.h +6 -6
  15. data/ext/google/protobuf_c/ruby-upb.c +11760 -6644
  16. data/ext/google/protobuf_c/ruby-upb.h +10765 -3396
  17. data/ext/google/protobuf_c/third_party/utf8_range/LICENSE +22 -0
  18. data/ext/google/protobuf_c/third_party/utf8_range/naive.c +92 -0
  19. data/ext/google/protobuf_c/third_party/utf8_range/range2-neon.c +157 -0
  20. data/ext/google/protobuf_c/third_party/utf8_range/range2-sse.c +170 -0
  21. data/ext/google/protobuf_c/third_party/utf8_range/utf8_range.h +21 -0
  22. data/ext/google/protobuf_c/wrap_memcpy.c +4 -3
  23. data/lib/google/protobuf/any_pb.rb +24 -5
  24. data/lib/google/protobuf/api_pb.rb +27 -23
  25. data/lib/google/protobuf/descriptor_dsl.rb +465 -0
  26. data/lib/google/protobuf/descriptor_pb.rb +75 -0
  27. data/lib/google/protobuf/duration_pb.rb +24 -5
  28. data/lib/google/protobuf/empty_pb.rb +24 -3
  29. data/lib/google/protobuf/field_mask_pb.rb +24 -4
  30. data/lib/google/protobuf/message_exts.rb +7 -2
  31. data/lib/google/protobuf/plugin_pb.rb +47 -0
  32. data/lib/google/protobuf/repeated_field.rb +15 -2
  33. data/lib/google/protobuf/source_context_pb.rb +24 -4
  34. data/lib/google/protobuf/struct_pb.rb +24 -20
  35. data/lib/google/protobuf/timestamp_pb.rb +24 -5
  36. data/lib/google/protobuf/type_pb.rb +27 -68
  37. data/lib/google/protobuf/well_known_types.rb +12 -2
  38. data/lib/google/protobuf/wrappers_pb.rb +24 -28
  39. data/lib/google/protobuf.rb +5 -73
  40. metadata +17 -36
  41. data/ext/google/protobuf_c/third_party/wyhash/wyhash.h +0 -145
  42. data/tests/basic.rb +0 -611
  43. data/tests/generated_code_test.rb +0 -23
  44. data/tests/stress.rb +0 -38
@@ -0,0 +1,465 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # Code that implements the DSL for defining proto messages.
4
+
5
+ # Suppress warning: loading in progress, circular require considered harmful.
6
+ # This circular require is intentional to avoid missing dependency.
7
+ begin
8
+ old_verbose, $VERBOSE = $VERBOSE, nil
9
+ require 'google/protobuf/descriptor_pb'
10
+ ensure
11
+ $VERBOSE = old_verbose
12
+ end
13
+
14
+ module Google
15
+ module Protobuf
16
+ module Internal
17
+ class AtomicCounter
18
+ def initialize
19
+ @n = 0
20
+ @mu = Mutex.new
21
+ end
22
+
23
+ def get_and_increment
24
+ n = @n
25
+ @mu.synchronize {
26
+ @n += 1
27
+ }
28
+ return n
29
+ end
30
+ end
31
+
32
+ class Builder
33
+ @@file_number = AtomicCounter.new
34
+
35
+ def initialize(pool)
36
+ @pool = pool
37
+ @default_file = nil # Constructed lazily
38
+ end
39
+
40
+ def add_file(name, options={}, &block)
41
+ builder = FileBuilder.new(@pool, name, options)
42
+ builder.instance_eval(&block)
43
+ internal_add_file(builder)
44
+ end
45
+
46
+ def add_message(name, &block)
47
+ internal_default_file.add_message(name, &block)
48
+ end
49
+
50
+ def add_enum(name, &block)
51
+ internal_default_file.add_enum(name, &block)
52
+ end
53
+
54
+ # ---- Internal methods, not part of the DSL ----
55
+
56
+ def build
57
+ if @default_file
58
+ internal_add_file(@default_file)
59
+ end
60
+ end
61
+
62
+ private def internal_add_file(file_builder)
63
+ proto = file_builder.build
64
+ serialized = Google::Protobuf::FileDescriptorProto.encode(proto)
65
+ @pool.add_serialized_file(serialized)
66
+ end
67
+
68
+ private def internal_default_file
69
+ number = @@file_number.get_and_increment
70
+ filename = "ruby_default_file#{number}.proto"
71
+ @default_file ||= FileBuilder.new(@pool, filename)
72
+ end
73
+ end
74
+
75
+ class FileBuilder
76
+ def initialize(pool, name, options={})
77
+ @pool = pool
78
+ @file_proto = Google::Protobuf::FileDescriptorProto.new(
79
+ name: name,
80
+ syntax: options.fetch(:syntax, "proto3")
81
+ )
82
+ end
83
+
84
+ def add_message(name, &block)
85
+ builder = MessageBuilder.new(name, self, @file_proto)
86
+ builder.instance_eval(&block)
87
+ builder.internal_add_synthetic_oneofs
88
+ end
89
+
90
+ def add_enum(name, &block)
91
+ EnumBuilder.new(name, @file_proto).instance_eval(&block)
92
+ end
93
+
94
+ # ---- Internal methods, not part of the DSL ----
95
+
96
+ # These methods fix up the file descriptor to account for differences
97
+ # between the DSL and FileDescriptorProto.
98
+
99
+ # The DSL can omit a package name; here we infer what the package is if
100
+ # was not specified.
101
+ def infer_package(names)
102
+ # Package is longest common prefix ending in '.', if any.
103
+ if not names.empty?
104
+ min, max = names.minmax
105
+ last_common_dot = nil
106
+ min.size.times { |i|
107
+ if min[i] != max[i] then break end
108
+ if min[i] == "." then last_common_dot = i end
109
+ }
110
+ if last_common_dot
111
+ return min.slice(0, last_common_dot)
112
+ end
113
+ end
114
+
115
+ nil
116
+ end
117
+
118
+ def rewrite_enum_default(field)
119
+ if field.type != :TYPE_ENUM or !field.has_default_value? or !field.has_type_name?
120
+ return
121
+ end
122
+
123
+ value = field.default_value
124
+ type_name = field.type_name
125
+
126
+ if value.empty? or value[0].ord < "0".ord or value[0].ord > "9".ord
127
+ return
128
+ end
129
+
130
+ if type_name.empty? || type_name[0] != "."
131
+ return
132
+ end
133
+
134
+ type_name = type_name[1..-1]
135
+ as_int = Integer(value) rescue return
136
+
137
+ enum_desc = @pool.lookup(type_name)
138
+ if enum_desc.is_a?(Google::Protobuf::EnumDescriptor)
139
+ # Enum was defined in a previous file.
140
+ name = enum_desc.lookup_value(as_int)
141
+ if name
142
+ # Update the default value in the proto.
143
+ field.default_value = name
144
+ end
145
+ else
146
+ # See if enum was defined in this file.
147
+ @file_proto.enum_type.each { |enum_proto|
148
+ if enum_proto.name == type_name
149
+ enum_proto.value.each { |enum_value_proto|
150
+ if enum_value_proto.number == as_int
151
+ # Update the default value in the proto.
152
+ field.default_value = enum_value_proto.name
153
+ return
154
+ end
155
+ }
156
+ # We found the right enum, but no value matched.
157
+ return
158
+ end
159
+ }
160
+ end
161
+ end
162
+
163
+ # Historically we allowed enum defaults to be specified as a number.
164
+ # In retrospect this was a mistake as descriptors require defaults to
165
+ # be specified as a label. This can make a difference if multiple
166
+ # labels have the same number.
167
+ #
168
+ # Here we do a pass over all enum defaults and rewrite numeric defaults
169
+ # by looking up their labels. This is complicated by the fact that the
170
+ # enum definition can live in either the symtab or the file_proto.
171
+ #
172
+ # We take advantage of the fact that this is called *before* enums or
173
+ # messages are nested in other messages, so we only have to iterate
174
+ # one level deep.
175
+ def rewrite_enum_defaults
176
+ @file_proto.message_type.each { |msg|
177
+ msg.field.each { |field|
178
+ rewrite_enum_default(field)
179
+ }
180
+ }
181
+ end
182
+
183
+ # We have to do some relatively complicated logic here for backward
184
+ # compatibility.
185
+ #
186
+ # In descriptor.proto, messages are nested inside other messages if that is
187
+ # what the original .proto file looks like. For example, suppose we have this
188
+ # foo.proto:
189
+ #
190
+ # package foo;
191
+ # message Bar {
192
+ # message Baz {}
193
+ # }
194
+ #
195
+ # The descriptor for this must look like this:
196
+ #
197
+ # file {
198
+ # name: "test.proto"
199
+ # package: "foo"
200
+ # message_type {
201
+ # name: "Bar"
202
+ # nested_type {
203
+ # name: "Baz"
204
+ # }
205
+ # }
206
+ # }
207
+ #
208
+ # However, the Ruby generated code has always generated messages in a flat,
209
+ # non-nested way:
210
+ #
211
+ # Google::Protobuf::DescriptorPool.generated_pool.build do
212
+ # add_message "foo.Bar" do
213
+ # end
214
+ # add_message "foo.Bar.Baz" do
215
+ # end
216
+ # end
217
+ #
218
+ # Here we need to do a translation where we turn this generated code into the
219
+ # above descriptor. We need to infer that "foo" is the package name, and not
220
+ # a message itself. */
221
+
222
+ def split_parent_name(msg_or_enum)
223
+ name = msg_or_enum.name
224
+ idx = name.rindex(?.)
225
+ if idx
226
+ return name[0...idx], name[idx+1..-1]
227
+ else
228
+ return nil, name
229
+ end
230
+ end
231
+
232
+ def get_parent_msg(msgs_by_name, name, parent_name)
233
+ parent_msg = msgs_by_name[parent_name]
234
+ if parent_msg.nil?
235
+ raise "To define name #{name}, there must be a message named #{parent_name} to enclose it"
236
+ end
237
+ return parent_msg
238
+ end
239
+
240
+ def fix_nesting
241
+ # Calculate and update package.
242
+ msgs_by_name = @file_proto.message_type.map { |msg| [msg.name, msg] }.to_h
243
+ enum_names = @file_proto.enum_type.map { |enum_proto| enum_proto.name }
244
+
245
+ package = infer_package(msgs_by_name.keys + enum_names)
246
+ if package
247
+ @file_proto.package = package
248
+ end
249
+
250
+ # Update nesting based on package.
251
+ final_msgs = Google::Protobuf::RepeatedField.new(:message, Google::Protobuf::DescriptorProto)
252
+ final_enums = Google::Protobuf::RepeatedField.new(:message, Google::Protobuf::EnumDescriptorProto)
253
+
254
+ # Note: We don't iterate over msgs_by_name.values because we want to
255
+ # preserve order as listed in the DSL.
256
+ @file_proto.message_type.each { |msg|
257
+ parent_name, msg.name = split_parent_name(msg)
258
+ if parent_name == package
259
+ final_msgs << msg
260
+ else
261
+ get_parent_msg(msgs_by_name, msg.name, parent_name).nested_type << msg
262
+ end
263
+ }
264
+
265
+ @file_proto.enum_type.each { |enum|
266
+ parent_name, enum.name = split_parent_name(enum)
267
+ if parent_name == package
268
+ final_enums << enum
269
+ else
270
+ get_parent_msg(msgs_by_name, enum.name, parent_name).enum_type << enum
271
+ end
272
+ }
273
+
274
+ @file_proto.message_type = final_msgs
275
+ @file_proto.enum_type = final_enums
276
+ end
277
+
278
+ def internal_file_proto
279
+ @file_proto
280
+ end
281
+
282
+ def build
283
+ rewrite_enum_defaults
284
+ fix_nesting
285
+ return @file_proto
286
+ end
287
+ end
288
+
289
+ class MessageBuilder
290
+ def initialize(name, file_builder, file_proto)
291
+ @file_builder = file_builder
292
+ @msg_proto = Google::Protobuf::DescriptorProto.new(
293
+ :name => name
294
+ )
295
+ file_proto.message_type << @msg_proto
296
+ end
297
+
298
+ def optional(name, type, number, type_class=nil, options=nil)
299
+ internal_add_field(:LABEL_OPTIONAL, name, type, number, type_class, options)
300
+ end
301
+
302
+ def proto3_optional(name, type, number, type_class=nil, options=nil)
303
+ internal_add_field(:LABEL_OPTIONAL, name, type, number, type_class, options,
304
+ proto3_optional: true)
305
+ end
306
+
307
+ def required(name, type, number, type_class=nil, options=nil)
308
+ internal_add_field(:LABEL_REQUIRED, name, type, number, type_class, options)
309
+ end
310
+
311
+ def repeated(name, type, number, type_class = nil, options=nil)
312
+ internal_add_field(:LABEL_REPEATED, name, type, number, type_class, options)
313
+ end
314
+
315
+ def oneof(name, &block)
316
+ OneofBuilder.new(name, self).instance_eval(&block)
317
+ end
318
+
319
+ # Defines a new map field on this message type with the given key and
320
+ # value types, tag number, and type class (for message and enum value
321
+ # types). The key type must be :int32/:uint32/:int64/:uint64, :bool, or
322
+ # :string. The value type type must be a Ruby symbol (as accepted by
323
+ # FieldDescriptor#type=) and the type_class must be a string, if
324
+ # present (as accepted by FieldDescriptor#submsg_name=).
325
+ def map(name, key_type, value_type, number, value_type_class = nil)
326
+ if key_type == :float or key_type == :double or key_type == :enum or
327
+ key_type == :message
328
+ raise ArgError, "Not an acceptable key type: " + key_type
329
+ end
330
+ entry_name = "#{@msg_proto.name}_MapEntry_#{name}"
331
+
332
+ @file_builder.add_message entry_name do
333
+ optional :key, key_type, 1
334
+ optional :value, value_type, 2, value_type_class
335
+ end
336
+ options = @file_builder.internal_file_proto.message_type.last.options ||= MessageOptions.new
337
+ options.map_entry = true
338
+ repeated name, :message, number, entry_name
339
+ end
340
+
341
+ # ---- Internal methods, not part of the DSL ----
342
+
343
+ def internal_add_synthetic_oneofs
344
+ # We have to build a set of all names, to ensure that synthetic oneofs
345
+ # are not creating conflicts
346
+ names = {}
347
+ @msg_proto.field.each { |field| names[field.name] = true }
348
+ @msg_proto.oneof_decl.each { |oneof| names[oneof.name] = true }
349
+
350
+ @msg_proto.field.each { |field|
351
+ if field.proto3_optional
352
+ # Prepend '_' until we are no longer conflicting.
353
+ oneof_name = field.name
354
+ while names[oneof_name]
355
+ oneof_name = "_" + oneof_name
356
+ end
357
+ names[oneof_name] = true
358
+ field.oneof_index = @msg_proto.oneof_decl.size
359
+ @msg_proto.oneof_decl << Google::Protobuf::OneofDescriptorProto.new(
360
+ name: oneof_name
361
+ )
362
+ end
363
+ }
364
+ end
365
+
366
+ def internal_add_field(label, name, type, number, type_class, options,
367
+ oneof_index: nil, proto3_optional: false)
368
+ # Allow passing either:
369
+ # - (name, type, number, options) or
370
+ # - (name, type, number, type_class, options)
371
+ if options.nil? and type_class.instance_of?(Hash)
372
+ options = type_class;
373
+ type_class = nil;
374
+ end
375
+
376
+ field_proto = Google::Protobuf::FieldDescriptorProto.new(
377
+ :label => label,
378
+ :name => name,
379
+ :type => ("TYPE_" + type.to_s.upcase).to_sym,
380
+ :number => number
381
+ )
382
+
383
+ if type_class
384
+ # Make it an absolute type name by prepending a dot.
385
+ field_proto.type_name = "." + type_class
386
+ end
387
+
388
+ if oneof_index
389
+ field_proto.oneof_index = oneof_index
390
+ end
391
+
392
+ if proto3_optional
393
+ field_proto.proto3_optional = true
394
+ end
395
+
396
+ if options
397
+ if options.key?(:default)
398
+ default = options[:default]
399
+ if !default.instance_of?(String)
400
+ # Call #to_s since all defaults are strings in the descriptor.
401
+ default = default.to_s
402
+ end
403
+ # XXX: we should be C-escaping bytes defaults.
404
+ field_proto.default_value = default.dup.force_encoding("UTF-8")
405
+ end
406
+ if options.key?(:json_name)
407
+ field_proto.json_name = options[:json_name]
408
+ end
409
+ end
410
+
411
+ @msg_proto.field << field_proto
412
+ end
413
+
414
+ def internal_msg_proto
415
+ @msg_proto
416
+ end
417
+ end
418
+
419
+ class OneofBuilder
420
+ def initialize(name, msg_builder)
421
+ @msg_builder = msg_builder
422
+ oneof_proto = Google::Protobuf::OneofDescriptorProto.new(
423
+ :name => name
424
+ )
425
+ msg_proto = msg_builder.internal_msg_proto
426
+ @oneof_index = msg_proto.oneof_decl.size
427
+ msg_proto.oneof_decl << oneof_proto
428
+ end
429
+
430
+ def optional(name, type, number, type_class=nil, options=nil)
431
+ @msg_builder.internal_add_field(
432
+ :LABEL_OPTIONAL, name, type, number, type_class, options,
433
+ oneof_index: @oneof_index)
434
+ end
435
+ end
436
+
437
+ class EnumBuilder
438
+ def initialize(name, file_proto)
439
+ @enum_proto = Google::Protobuf::EnumDescriptorProto.new(
440
+ :name => name
441
+ )
442
+ file_proto.enum_type << @enum_proto
443
+ end
444
+
445
+ def value(name, number)
446
+ enum_value_proto = Google::Protobuf::EnumValueDescriptorProto.new(
447
+ name: name,
448
+ number: number
449
+ )
450
+ @enum_proto.value << enum_value_proto
451
+ end
452
+ end
453
+
454
+ end
455
+
456
+ # Re-open the class (the rest of the class is implemented in C)
457
+ class DescriptorPool
458
+ def build(&block)
459
+ builder = Internal::Builder.new(self)
460
+ builder.instance_eval(&block)
461
+ builder.build
462
+ end
463
+ end
464
+ end
465
+ end
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: google/protobuf/descriptor.proto
4
+
5
+ require 'google/protobuf'
6
+
7
+
8
+ descriptor_data = "\n google/protobuf/descriptor.proto\x12\x0fgoogle.protobuf\"G\n\x11\x46ileDescriptorSet\x12\x32\n\x04\x66ile\x18\x01 \x03(\x0b\x32$.google.protobuf.FileDescriptorProto\"\xec\x03\n\x13\x46ileDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07package\x18\x02 \x01(\t\x12\x12\n\ndependency\x18\x03 \x03(\t\x12\x19\n\x11public_dependency\x18\n \x03(\x05\x12\x17\n\x0fweak_dependency\x18\x0b \x03(\x05\x12\x36\n\x0cmessage_type\x18\x04 \x03(\x0b\x32 .google.protobuf.DescriptorProto\x12\x37\n\tenum_type\x18\x05 \x03(\x0b\x32$.google.protobuf.EnumDescriptorProto\x12\x38\n\x07service\x18\x06 \x03(\x0b\x32\'.google.protobuf.ServiceDescriptorProto\x12\x38\n\textension\x18\x07 \x03(\x0b\x32%.google.protobuf.FieldDescriptorProto\x12-\n\x07options\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.FileOptions\x12\x39\n\x10source_code_info\x18\t \x01(\x0b\x32\x1f.google.protobuf.SourceCodeInfo\x12\x0e\n\x06syntax\x18\x0c \x01(\t\x12\x0f\n\x07\x65\x64ition\x18\r \x01(\t\"\xa9\x05\n\x0f\x44\x65scriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x05\x66ield\x18\x02 \x03(\x0b\x32%.google.protobuf.FieldDescriptorProto\x12\x38\n\textension\x18\x06 \x03(\x0b\x32%.google.protobuf.FieldDescriptorProto\x12\x35\n\x0bnested_type\x18\x03 \x03(\x0b\x32 .google.protobuf.DescriptorProto\x12\x37\n\tenum_type\x18\x04 \x03(\x0b\x32$.google.protobuf.EnumDescriptorProto\x12H\n\x0f\x65xtension_range\x18\x05 \x03(\x0b\x32/.google.protobuf.DescriptorProto.ExtensionRange\x12\x39\n\noneof_decl\x18\x08 \x03(\x0b\x32%.google.protobuf.OneofDescriptorProto\x12\x30\n\x07options\x18\x07 \x01(\x0b\x32\x1f.google.protobuf.MessageOptions\x12\x46\n\x0ereserved_range\x18\t \x03(\x0b\x32..google.protobuf.DescriptorProto.ReservedRange\x12\x15\n\rreserved_name\x18\n \x03(\t\x1a\x65\n\x0e\x45xtensionRange\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\x12\x37\n\x07options\x18\x03 \x01(\x0b\x32&.google.protobuf.ExtensionRangeOptions\x1a+\n\rReservedRange\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\"\xc4\x03\n\x15\x45xtensionRangeOptions\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.google.protobuf.UninterpretedOption\x12L\n\x0b\x64\x65\x63laration\x18\x02 \x03(\x0b\x32\x32.google.protobuf.ExtensionRangeOptions.DeclarationB\x03\x88\x01\x02\x12Z\n\x0cverification\x18\x03 \x01(\x0e\x32\x38.google.protobuf.ExtensionRangeOptions.VerificationState:\nUNVERIFIED\x1a{\n\x0b\x44\x65\x63laration\x12\x0e\n\x06number\x18\x01 \x01(\x05\x12\x11\n\tfull_name\x18\x02 \x01(\t\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x17\n\x0bis_repeated\x18\x04 \x01(\x08\x42\x02\x18\x01\x12\x10\n\x08reserved\x18\x05 \x01(\x08\x12\x10\n\x08repeated\x18\x06 \x01(\x08\"4\n\x11VerificationState\x12\x0f\n\x0b\x44\x45\x43LARATION\x10\x00\x12\x0e\n\nUNVERIFIED\x10\x01*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xd5\x05\n\x14\x46ieldDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x03 \x01(\x05\x12:\n\x05label\x18\x04 \x01(\x0e\x32+.google.protobuf.FieldDescriptorProto.Label\x12\x38\n\x04type\x18\x05 \x01(\x0e\x32*.google.protobuf.FieldDescriptorProto.Type\x12\x11\n\ttype_name\x18\x06 \x01(\t\x12\x10\n\x08\x65xtendee\x18\x02 \x01(\t\x12\x15\n\rdefault_value\x18\x07 \x01(\t\x12\x13\n\x0boneof_index\x18\t \x01(\x05\x12\x11\n\tjson_name\x18\n \x01(\t\x12.\n\x07options\x18\x08 \x01(\x0b\x32\x1d.google.protobuf.FieldOptions\x12\x17\n\x0fproto3_optional\x18\x11 \x01(\x08\"\xb6\x02\n\x04Type\x12\x0f\n\x0bTYPE_DOUBLE\x10\x01\x12\x0e\n\nTYPE_FLOAT\x10\x02\x12\x0e\n\nTYPE_INT64\x10\x03\x12\x0f\n\x0bTYPE_UINT64\x10\x04\x12\x0e\n\nTYPE_INT32\x10\x05\x12\x10\n\x0cTYPE_FIXED64\x10\x06\x12\x10\n\x0cTYPE_FIXED32\x10\x07\x12\r\n\tTYPE_BOOL\x10\x08\x12\x0f\n\x0bTYPE_STRING\x10\t\x12\x0e\n\nTYPE_GROUP\x10\n\x12\x10\n\x0cTYPE_MESSAGE\x10\x0b\x12\x0e\n\nTYPE_BYTES\x10\x0c\x12\x0f\n\x0bTYPE_UINT32\x10\r\x12\r\n\tTYPE_ENUM\x10\x0e\x12\x11\n\rTYPE_SFIXED32\x10\x0f\x12\x11\n\rTYPE_SFIXED64\x10\x10\x12\x0f\n\x0bTYPE_SINT32\x10\x11\x12\x0f\n\x0bTYPE_SINT64\x10\x12\"C\n\x05Label\x12\x12\n\x0eLABEL_OPTIONAL\x10\x01\x12\x12\n\x0eLABEL_REQUIRED\x10\x02\x12\x12\n\x0eLABEL_REPEATED\x10\x03\"T\n\x14OneofDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12.\n\x07options\x18\x02 \x01(\x0b\x32\x1d.google.protobuf.OneofOptions\"\xa4\x02\n\x13\x45numDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x38\n\x05value\x18\x02 \x03(\x0b\x32).google.protobuf.EnumValueDescriptorProto\x12-\n\x07options\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.EnumOptions\x12N\n\x0ereserved_range\x18\x04 \x03(\x0b\x32\x36.google.protobuf.EnumDescriptorProto.EnumReservedRange\x12\x15\n\rreserved_name\x18\x05 \x03(\t\x1a/\n\x11\x45numReservedRange\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\"l\n\x18\x45numValueDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x02 \x01(\x05\x12\x32\n\x07options\x18\x03 \x01(\x0b\x32!.google.protobuf.EnumValueOptions\"\x90\x01\n\x16ServiceDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x36\n\x06method\x18\x02 \x03(\x0b\x32&.google.protobuf.MethodDescriptorProto\x12\x30\n\x07options\x18\x03 \x01(\x0b\x32\x1f.google.protobuf.ServiceOptions\"\xc1\x01\n\x15MethodDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\ninput_type\x18\x02 \x01(\t\x12\x13\n\x0boutput_type\x18\x03 \x01(\t\x12/\n\x07options\x18\x04 \x01(\x0b\x32\x1e.google.protobuf.MethodOptions\x12\x1f\n\x10\x63lient_streaming\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x1f\n\x10server_streaming\x18\x06 \x01(\x08:\x05\x66\x61lse\"\xa5\x06\n\x0b\x46ileOptions\x12\x14\n\x0cjava_package\x18\x01 \x01(\t\x12\x1c\n\x14java_outer_classname\x18\x08 \x01(\t\x12\"\n\x13java_multiple_files\x18\n \x01(\x08:\x05\x66\x61lse\x12)\n\x1djava_generate_equals_and_hash\x18\x14 \x01(\x08\x42\x02\x18\x01\x12%\n\x16java_string_check_utf8\x18\x1b \x01(\x08:\x05\x66\x61lse\x12\x46\n\x0coptimize_for\x18\t \x01(\x0e\x32).google.protobuf.FileOptions.OptimizeMode:\x05SPEED\x12\x12\n\ngo_package\x18\x0b \x01(\t\x12\"\n\x13\x63\x63_generic_services\x18\x10 \x01(\x08:\x05\x66\x61lse\x12$\n\x15java_generic_services\x18\x11 \x01(\x08:\x05\x66\x61lse\x12\"\n\x13py_generic_services\x18\x12 \x01(\x08:\x05\x66\x61lse\x12#\n\x14php_generic_services\x18* \x01(\x08:\x05\x66\x61lse\x12\x19\n\ndeprecated\x18\x17 \x01(\x08:\x05\x66\x61lse\x12\x1e\n\x10\x63\x63_enable_arenas\x18\x1f \x01(\x08:\x04true\x12\x19\n\x11objc_class_prefix\x18$ \x01(\t\x12\x18\n\x10\x63sharp_namespace\x18% \x01(\t\x12\x14\n\x0cswift_prefix\x18\' \x01(\t\x12\x18\n\x10php_class_prefix\x18( \x01(\t\x12\x15\n\rphp_namespace\x18) \x01(\t\x12\x1e\n\x16php_metadata_namespace\x18, \x01(\t\x12\x14\n\x0cruby_package\x18- \x01(\t\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.google.protobuf.UninterpretedOption\":\n\x0cOptimizeMode\x12\t\n\x05SPEED\x10\x01\x12\r\n\tCODE_SIZE\x10\x02\x12\x10\n\x0cLITE_RUNTIME\x10\x03*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08&\x10\'\"\xb8\x02\n\x0eMessageOptions\x12&\n\x17message_set_wire_format\x18\x01 \x01(\x08:\x05\x66\x61lse\x12.\n\x1fno_standard_descriptor_accessor\x18\x02 \x01(\x08:\x05\x66\x61lse\x12\x19\n\ndeprecated\x18\x03 \x01(\x08:\x05\x66\x61lse\x12\x11\n\tmap_entry\x18\x07 \x01(\x08\x12\x32\n&deprecated_legacy_json_field_conflicts\x18\x0b \x01(\x08\x42\x02\x18\x01\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.google.protobuf.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07J\x04\x08\x08\x10\tJ\x04\x08\t\x10\n\"\x88\x08\n\x0c\x46ieldOptions\x12:\n\x05\x63type\x18\x01 \x01(\x0e\x32#.google.protobuf.FieldOptions.CType:\x06STRING\x12\x0e\n\x06packed\x18\x02 \x01(\x08\x12?\n\x06jstype\x18\x06 \x01(\x0e\x32$.google.protobuf.FieldOptions.JSType:\tJS_NORMAL\x12\x13\n\x04lazy\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x1e\n\x0funverified_lazy\x18\x0f \x01(\x08:\x05\x66\x61lse\x12\x19\n\ndeprecated\x18\x03 \x01(\x08:\x05\x66\x61lse\x12\x13\n\x04weak\x18\n \x01(\x08:\x05\x66\x61lse\x12\x1b\n\x0c\x64\x65\x62ug_redact\x18\x10 \x01(\x08:\x05\x66\x61lse\x12@\n\tretention\x18\x11 \x01(\x0e\x32-.google.protobuf.FieldOptions.OptionRetention\x12\x42\n\x06target\x18\x12 \x01(\x0e\x32..google.protobuf.FieldOptions.OptionTargetTypeB\x02\x18\x01\x12?\n\x07targets\x18\x13 \x03(\x0e\x32..google.protobuf.FieldOptions.OptionTargetType\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.google.protobuf.UninterpretedOption\"/\n\x05\x43Type\x12\n\n\x06STRING\x10\x00\x12\x08\n\x04\x43ORD\x10\x01\x12\x10\n\x0cSTRING_PIECE\x10\x02\"5\n\x06JSType\x12\r\n\tJS_NORMAL\x10\x00\x12\r\n\tJS_STRING\x10\x01\x12\r\n\tJS_NUMBER\x10\x02\"U\n\x0fOptionRetention\x12\x15\n\x11RETENTION_UNKNOWN\x10\x00\x12\x15\n\x11RETENTION_RUNTIME\x10\x01\x12\x14\n\x10RETENTION_SOURCE\x10\x02\"\x8c\x02\n\x10OptionTargetType\x12\x17\n\x13TARGET_TYPE_UNKNOWN\x10\x00\x12\x14\n\x10TARGET_TYPE_FILE\x10\x01\x12\x1f\n\x1bTARGET_TYPE_EXTENSION_RANGE\x10\x02\x12\x17\n\x13TARGET_TYPE_MESSAGE\x10\x03\x12\x15\n\x11TARGET_TYPE_FIELD\x10\x04\x12\x15\n\x11TARGET_TYPE_ONEOF\x10\x05\x12\x14\n\x10TARGET_TYPE_ENUM\x10\x06\x12\x1a\n\x16TARGET_TYPE_ENUM_ENTRY\x10\x07\x12\x17\n\x13TARGET_TYPE_SERVICE\x10\x08\x12\x16\n\x12TARGET_TYPE_METHOD\x10\t*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x04\x10\x05\"^\n\x0cOneofOptions\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.google.protobuf.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xc7\x01\n\x0b\x45numOptions\x12\x13\n\x0b\x61llow_alias\x18\x02 \x01(\x08\x12\x19\n\ndeprecated\x18\x03 \x01(\x08:\x05\x66\x61lse\x12\x32\n&deprecated_legacy_json_field_conflicts\x18\x06 \x01(\x08\x42\x02\x18\x01\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.google.protobuf.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x05\x10\x06\"}\n\x10\x45numValueOptions\x12\x19\n\ndeprecated\x18\x01 \x01(\x08:\x05\x66\x61lse\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.google.protobuf.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"{\n\x0eServiceOptions\x12\x19\n\ndeprecated\x18! \x01(\x08:\x05\x66\x61lse\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.google.protobuf.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xad\x02\n\rMethodOptions\x12\x19\n\ndeprecated\x18! \x01(\x08:\x05\x66\x61lse\x12_\n\x11idempotency_level\x18\" \x01(\x0e\x32/.google.protobuf.MethodOptions.IdempotencyLevel:\x13IDEMPOTENCY_UNKNOWN\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.google.protobuf.UninterpretedOption\"P\n\x10IdempotencyLevel\x12\x17\n\x13IDEMPOTENCY_UNKNOWN\x10\x00\x12\x13\n\x0fNO_SIDE_EFFECTS\x10\x01\x12\x0e\n\nIDEMPOTENT\x10\x02*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x9e\x02\n\x13UninterpretedOption\x12;\n\x04name\x18\x02 \x03(\x0b\x32-.google.protobuf.UninterpretedOption.NamePart\x12\x18\n\x10identifier_value\x18\x03 \x01(\t\x12\x1a\n\x12positive_int_value\x18\x04 \x01(\x04\x12\x1a\n\x12negative_int_value\x18\x05 \x01(\x03\x12\x14\n\x0c\x64ouble_value\x18\x06 \x01(\x01\x12\x14\n\x0cstring_value\x18\x07 \x01(\x0c\x12\x17\n\x0f\x61ggregate_value\x18\x08 \x01(\t\x1a\x33\n\x08NamePart\x12\x11\n\tname_part\x18\x01 \x02(\t\x12\x14\n\x0cis_extension\x18\x02 \x02(\x08\"\xd5\x01\n\x0eSourceCodeInfo\x12:\n\x08location\x18\x01 \x03(\x0b\x32(.google.protobuf.SourceCodeInfo.Location\x1a\x86\x01\n\x08Location\x12\x10\n\x04path\x18\x01 \x03(\x05\x42\x02\x10\x01\x12\x10\n\x04span\x18\x02 \x03(\x05\x42\x02\x10\x01\x12\x18\n\x10leading_comments\x18\x03 \x01(\t\x12\x19\n\x11trailing_comments\x18\x04 \x01(\t\x12!\n\x19leading_detached_comments\x18\x06 \x03(\t\"\x9c\x02\n\x11GeneratedCodeInfo\x12\x41\n\nannotation\x18\x01 \x03(\x0b\x32-.google.protobuf.GeneratedCodeInfo.Annotation\x1a\xc3\x01\n\nAnnotation\x12\x10\n\x04path\x18\x01 \x03(\x05\x42\x02\x10\x01\x12\x13\n\x0bsource_file\x18\x02 \x01(\t\x12\r\n\x05\x62\x65gin\x18\x03 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x04 \x01(\x05\x12H\n\x08semantic\x18\x05 \x01(\x0e\x32\x36.google.protobuf.GeneratedCodeInfo.Annotation.Semantic\"(\n\x08Semantic\x12\x08\n\x04NONE\x10\x00\x12\x07\n\x03SET\x10\x01\x12\t\n\x05\x41LIAS\x10\x02\x42~\n\x13\x63om.google.protobufB\x10\x44\x65scriptorProtosH\x01Z-google.golang.org/protobuf/types/descriptorpb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1aGoogle.Protobuf.Reflection"
9
+
10
+ pool = Google::Protobuf::DescriptorPool.generated_pool
11
+
12
+ begin
13
+ pool.add_serialized_file(descriptor_data)
14
+ rescue TypeError => e
15
+ # Compatibility code: will be removed in the next major version.
16
+ require 'google/protobuf/descriptor_pb'
17
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
18
+ parsed.clear_dependency
19
+ serialized = parsed.class.encode(parsed)
20
+ file = pool.add_serialized_file(serialized)
21
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
22
+ imports = [
23
+ ]
24
+ imports.each do |type_name, expected_filename|
25
+ import_file = pool.lookup(type_name).file_descriptor
26
+ if import_file.name != expected_filename
27
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
28
+ end
29
+ end
30
+ warn "Each proto file must use a consistent fully-qualified name."
31
+ warn "This will become an error in the next major version."
32
+ end
33
+
34
+ module Google
35
+ module Protobuf
36
+ FileDescriptorSet = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FileDescriptorSet").msgclass
37
+ FileDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FileDescriptorProto").msgclass
38
+ DescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.DescriptorProto").msgclass
39
+ DescriptorProto::ExtensionRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.DescriptorProto.ExtensionRange").msgclass
40
+ DescriptorProto::ReservedRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.DescriptorProto.ReservedRange").msgclass
41
+ ExtensionRangeOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.ExtensionRangeOptions").msgclass
42
+ ExtensionRangeOptions::Declaration = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.ExtensionRangeOptions.Declaration").msgclass
43
+ ExtensionRangeOptions::VerificationState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.ExtensionRangeOptions.VerificationState").enummodule
44
+ FieldDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldDescriptorProto").msgclass
45
+ FieldDescriptorProto::Type = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldDescriptorProto.Type").enummodule
46
+ FieldDescriptorProto::Label = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldDescriptorProto.Label").enummodule
47
+ OneofDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.OneofDescriptorProto").msgclass
48
+ EnumDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumDescriptorProto").msgclass
49
+ EnumDescriptorProto::EnumReservedRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumDescriptorProto.EnumReservedRange").msgclass
50
+ EnumValueDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumValueDescriptorProto").msgclass
51
+ ServiceDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.ServiceDescriptorProto").msgclass
52
+ MethodDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.MethodDescriptorProto").msgclass
53
+ FileOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FileOptions").msgclass
54
+ FileOptions::OptimizeMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FileOptions.OptimizeMode").enummodule
55
+ MessageOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.MessageOptions").msgclass
56
+ FieldOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldOptions").msgclass
57
+ FieldOptions::CType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldOptions.CType").enummodule
58
+ FieldOptions::JSType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldOptions.JSType").enummodule
59
+ FieldOptions::OptionRetention = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldOptions.OptionRetention").enummodule
60
+ FieldOptions::OptionTargetType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldOptions.OptionTargetType").enummodule
61
+ OneofOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.OneofOptions").msgclass
62
+ EnumOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumOptions").msgclass
63
+ EnumValueOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumValueOptions").msgclass
64
+ ServiceOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.ServiceOptions").msgclass
65
+ MethodOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.MethodOptions").msgclass
66
+ MethodOptions::IdempotencyLevel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.MethodOptions.IdempotencyLevel").enummodule
67
+ UninterpretedOption = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.UninterpretedOption").msgclass
68
+ UninterpretedOption::NamePart = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.UninterpretedOption.NamePart").msgclass
69
+ SourceCodeInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.SourceCodeInfo").msgclass
70
+ SourceCodeInfo::Location = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.SourceCodeInfo.Location").msgclass
71
+ GeneratedCodeInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.GeneratedCodeInfo").msgclass
72
+ GeneratedCodeInfo::Annotation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.GeneratedCodeInfo.Annotation").msgclass
73
+ GeneratedCodeInfo::Annotation::Semantic = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.GeneratedCodeInfo.Annotation.Semantic").enummodule
74
+ end
75
+ end
@@ -1,15 +1,34 @@
1
+ # frozen_string_literal: true
1
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
3
  # source: google/protobuf/duration.proto
3
4
 
4
5
  require 'google/protobuf'
5
6
 
6
- Google::Protobuf::DescriptorPool.generated_pool.build do
7
- add_file("google/protobuf/duration.proto", :syntax => :proto3) do
8
- add_message "google.protobuf.Duration" do
9
- optional :seconds, :int64, 1
10
- optional :nanos, :int32, 2
7
+
8
+ descriptor_data = "\n\x1egoogle/protobuf/duration.proto\x12\x0fgoogle.protobuf\"*\n\x08\x44uration\x12\x0f\n\x07seconds\x18\x01 \x01(\x03\x12\r\n\x05nanos\x18\x02 \x01(\x05\x42\x83\x01\n\x13\x63om.google.protobufB\rDurationProtoP\x01Z1google.golang.org/protobuf/types/known/durationpb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3"
9
+
10
+ pool = Google::Protobuf::DescriptorPool.generated_pool
11
+
12
+ begin
13
+ pool.add_serialized_file(descriptor_data)
14
+ rescue TypeError => e
15
+ # Compatibility code: will be removed in the next major version.
16
+ require 'google/protobuf/descriptor_pb'
17
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
18
+ parsed.clear_dependency
19
+ serialized = parsed.class.encode(parsed)
20
+ file = pool.add_serialized_file(serialized)
21
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
22
+ imports = [
23
+ ]
24
+ imports.each do |type_name, expected_filename|
25
+ import_file = pool.lookup(type_name).file_descriptor
26
+ if import_file.name != expected_filename
27
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
11
28
  end
12
29
  end
30
+ warn "Each proto file must use a consistent fully-qualified name."
31
+ warn "This will become an error in the next major version."
13
32
  end
14
33
 
15
34
  module Google
@@ -1,13 +1,34 @@
1
+ # frozen_string_literal: true
1
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
3
  # source: google/protobuf/empty.proto
3
4
 
4
5
  require 'google/protobuf'
5
6
 
6
- Google::Protobuf::DescriptorPool.generated_pool.build do
7
- add_file("google/protobuf/empty.proto", :syntax => :proto3) do
8
- add_message "google.protobuf.Empty" do
7
+
8
+ descriptor_data = "\n\x1bgoogle/protobuf/empty.proto\x12\x0fgoogle.protobuf\"\x07\n\x05\x45mptyB}\n\x13\x63om.google.protobufB\nEmptyProtoP\x01Z.google.golang.org/protobuf/types/known/emptypb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3"
9
+
10
+ pool = Google::Protobuf::DescriptorPool.generated_pool
11
+
12
+ begin
13
+ pool.add_serialized_file(descriptor_data)
14
+ rescue TypeError => e
15
+ # Compatibility code: will be removed in the next major version.
16
+ require 'google/protobuf/descriptor_pb'
17
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
18
+ parsed.clear_dependency
19
+ serialized = parsed.class.encode(parsed)
20
+ file = pool.add_serialized_file(serialized)
21
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
22
+ imports = [
23
+ ]
24
+ imports.each do |type_name, expected_filename|
25
+ import_file = pool.lookup(type_name).file_descriptor
26
+ if import_file.name != expected_filename
27
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
9
28
  end
10
29
  end
30
+ warn "Each proto file must use a consistent fully-qualified name."
31
+ warn "This will become an error in the next major version."
11
32
  end
12
33
 
13
34
  module Google
@@ -1,14 +1,34 @@
1
+ # frozen_string_literal: true
1
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
3
  # source: google/protobuf/field_mask.proto
3
4
 
4
5
  require 'google/protobuf'
5
6
 
6
- Google::Protobuf::DescriptorPool.generated_pool.build do
7
- add_file("google/protobuf/field_mask.proto", :syntax => :proto3) do
8
- add_message "google.protobuf.FieldMask" do
9
- repeated :paths, :string, 1
7
+
8
+ descriptor_data = "\n google/protobuf/field_mask.proto\x12\x0fgoogle.protobuf\"\x1a\n\tFieldMask\x12\r\n\x05paths\x18\x01 \x03(\tB\x85\x01\n\x13\x63om.google.protobufB\x0e\x46ieldMaskProtoP\x01Z2google.golang.org/protobuf/types/known/fieldmaskpb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3"
9
+
10
+ pool = Google::Protobuf::DescriptorPool.generated_pool
11
+
12
+ begin
13
+ pool.add_serialized_file(descriptor_data)
14
+ rescue TypeError => e
15
+ # Compatibility code: will be removed in the next major version.
16
+ require 'google/protobuf/descriptor_pb'
17
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
18
+ parsed.clear_dependency
19
+ serialized = parsed.class.encode(parsed)
20
+ file = pool.add_serialized_file(serialized)
21
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
22
+ imports = [
23
+ ]
24
+ imports.each do |type_name, expected_filename|
25
+ import_file = pool.lookup(type_name).file_descriptor
26
+ if import_file.name != expected_filename
27
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
10
28
  end
11
29
  end
30
+ warn "Each proto file must use a consistent fully-qualified name."
31
+ warn "This will become an error in the next major version."
12
32
  end
13
33
 
14
34
  module Google