protobuf-core 3.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +18 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +23 -0
  8. data/Rakefile +5 -0
  9. data/bin/protoc-gen-ruby +16 -0
  10. data/lib/protobuf.rb +27 -0
  11. data/lib/protobuf/code_generator.rb +44 -0
  12. data/lib/protobuf/core.rb +2 -0
  13. data/lib/protobuf/core/version.rb +5 -0
  14. data/lib/protobuf/decoder.rb +73 -0
  15. data/lib/protobuf/deprecation.rb +112 -0
  16. data/lib/protobuf/descriptors.rb +3 -0
  17. data/lib/protobuf/descriptors/google/protobuf/compiler/plugin.pb.rb +54 -0
  18. data/lib/protobuf/descriptors/google/protobuf/descriptor.pb.rb +251 -0
  19. data/lib/protobuf/encoder.rb +67 -0
  20. data/lib/protobuf/enum.rb +303 -0
  21. data/lib/protobuf/exceptions.rb +9 -0
  22. data/lib/protobuf/field.rb +74 -0
  23. data/lib/protobuf/field/base_field.rb +267 -0
  24. data/lib/protobuf/field/bool_field.rb +59 -0
  25. data/lib/protobuf/field/bytes_field.rb +82 -0
  26. data/lib/protobuf/field/double_field.rb +25 -0
  27. data/lib/protobuf/field/enum_field.rb +68 -0
  28. data/lib/protobuf/field/field_array.rb +87 -0
  29. data/lib/protobuf/field/fixed32_field.rb +25 -0
  30. data/lib/protobuf/field/fixed64_field.rb +28 -0
  31. data/lib/protobuf/field/float_field.rb +41 -0
  32. data/lib/protobuf/field/int32_field.rb +21 -0
  33. data/lib/protobuf/field/int64_field.rb +21 -0
  34. data/lib/protobuf/field/integer_field.rb +23 -0
  35. data/lib/protobuf/field/message_field.rb +65 -0
  36. data/lib/protobuf/field/sfixed32_field.rb +27 -0
  37. data/lib/protobuf/field/sfixed64_field.rb +28 -0
  38. data/lib/protobuf/field/signed_integer_field.rb +29 -0
  39. data/lib/protobuf/field/sint32_field.rb +21 -0
  40. data/lib/protobuf/field/sint64_field.rb +21 -0
  41. data/lib/protobuf/field/string_field.rb +34 -0
  42. data/lib/protobuf/field/uint32_field.rb +21 -0
  43. data/lib/protobuf/field/uint64_field.rb +21 -0
  44. data/lib/protobuf/field/varint_field.rb +73 -0
  45. data/lib/protobuf/generators/base.rb +70 -0
  46. data/lib/protobuf/generators/enum_generator.rb +41 -0
  47. data/lib/protobuf/generators/extension_generator.rb +27 -0
  48. data/lib/protobuf/generators/field_generator.rb +131 -0
  49. data/lib/protobuf/generators/file_generator.rb +132 -0
  50. data/lib/protobuf/generators/group_generator.rb +105 -0
  51. data/lib/protobuf/generators/message_generator.rb +98 -0
  52. data/lib/protobuf/generators/printable.rb +160 -0
  53. data/lib/protobuf/logging.rb +39 -0
  54. data/lib/protobuf/message.rb +193 -0
  55. data/lib/protobuf/message/fields.rb +133 -0
  56. data/lib/protobuf/message/serialization.rb +89 -0
  57. data/lib/protobuf/optionable.rb +23 -0
  58. data/lib/protobuf/wire_type.rb +10 -0
  59. data/proto/dynamic_discovery.proto +44 -0
  60. data/proto/google/protobuf/compiler/plugin.proto +147 -0
  61. data/proto/google/protobuf/descriptor.proto +620 -0
  62. data/proto/rpc.proto +62 -0
  63. data/protobuf-core.gemspec +31 -0
  64. data/spec/bin/protoc-gen-ruby_spec.rb +23 -0
  65. data/spec/data/data.bin +3 -0
  66. data/spec/data/types.bin +0 -0
  67. data/spec/encoding/all_types_spec.rb +105 -0
  68. data/spec/encoding/extreme_values_spec.rb +0 -0
  69. data/spec/functional/class_inheritance_spec.rb +52 -0
  70. data/spec/functional/compile_and_require_spec.rb +29 -0
  71. data/spec/lib/protobuf/base_spec.rb +84 -0
  72. data/spec/lib/protobuf/code_generator_spec.rb +60 -0
  73. data/spec/lib/protobuf/enum_generator_spec.rb +73 -0
  74. data/spec/lib/protobuf/enum_spec.rb +265 -0
  75. data/spec/lib/protobuf/extension_generator_spec.rb +42 -0
  76. data/spec/lib/protobuf/field/bool_field_spec.rb +51 -0
  77. data/spec/lib/protobuf/field/field_array_spec.rb +69 -0
  78. data/spec/lib/protobuf/field/float_field_spec.rb +55 -0
  79. data/spec/lib/protobuf/field/int32_field_spec.rb +90 -0
  80. data/spec/lib/protobuf/field/string_field_spec.rb +45 -0
  81. data/spec/lib/protobuf/field_generator_spec.rb +102 -0
  82. data/spec/lib/protobuf/field_spec.rb +191 -0
  83. data/spec/lib/protobuf/file_generator_spec.rb +32 -0
  84. data/spec/lib/protobuf/message_generator_spec.rb +0 -0
  85. data/spec/lib/protobuf/message_spec.rb +526 -0
  86. data/spec/lib/protobuf/optionable_spec.rb +46 -0
  87. data/spec/lib/protobuf_spec.rb +45 -0
  88. data/spec/spec_helper.rb +9 -0
  89. data/spec/support/packed_field.rb +22 -0
  90. data/spec/support/test/all_types.data.bin +0 -0
  91. data/spec/support/test/all_types.data.txt +119 -0
  92. data/spec/support/test/bacon.proto +14 -0
  93. data/spec/support/test/defaults.pb.rb +27 -0
  94. data/spec/support/test/defaults.proto +9 -0
  95. data/spec/support/test/enum.pb.rb +61 -0
  96. data/spec/support/test/enum.proto +34 -0
  97. data/spec/support/test/extended.pb.rb +24 -0
  98. data/spec/support/test/extended.proto +10 -0
  99. data/spec/support/test/extreme_values.data.bin +0 -0
  100. data/spec/support/test/google_unittest.pb.rb +530 -0
  101. data/spec/support/test/google_unittest.proto +713 -0
  102. data/spec/support/test/google_unittest_import.pb.rb +39 -0
  103. data/spec/support/test/google_unittest_import.proto +64 -0
  104. data/spec/support/test/google_unittest_import_public.pb.rb +10 -0
  105. data/spec/support/test/google_unittest_import_public.proto +38 -0
  106. data/spec/support/test/multi_field_extensions.pb.rb +58 -0
  107. data/spec/support/test/multi_field_extensions.proto +33 -0
  108. data/spec/support/test/resource.pb.rb +106 -0
  109. data/spec/support/test/resource.proto +94 -0
  110. metadata +306 -0
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+ require 'protobuf/optionable'
3
+
4
+ RSpec.describe 'Optionable' do
5
+
6
+ describe '.set_option' do
7
+ before(:all) do
8
+ OptionableSetOptionTest = ::Class.new do
9
+ include ::Protobuf::Optionable
10
+ end
11
+ end
12
+
13
+ it 'stores the given option and value' do
14
+ expect(OptionableSetOptionTest).to respond_to(:set_option)
15
+ expect(OptionableSetOptionTest.method(:set_option).arity).to eq(-2)
16
+ expect do
17
+ OptionableSetOptionTest.set_option(:foo, :bar)
18
+ end.to_not raise_error
19
+ end
20
+
21
+ it 'defaults the value to true' do
22
+ OptionableSetOptionTest.set_option(:baz_enabled)
23
+ expect(OptionableSetOptionTest.get_option(:baz_enabled)).to be true
24
+ end
25
+ end
26
+
27
+ describe '.get_option' do
28
+ before(:all) do
29
+ OptionableGetOptionTest = ::Class.new do
30
+ include ::Protobuf::Optionable
31
+ set_option :foo, :bar
32
+ end
33
+ end
34
+
35
+ it 'retrieves the option for the given name, if any' do
36
+ expect(OptionableGetOptionTest.get_option(:foo)).to eq(:bar)
37
+ expect(OptionableGetOptionTest.get_option(:baz)).to be_nil
38
+ end
39
+
40
+ it 'retrieves the option in the context of an instance' do
41
+ expect(OptionableGetOptionTest.new.get_option(:foo)).to eq(:bar)
42
+ expect(OptionableGetOptionTest.new.get_option(:baz)).to be_nil
43
+ end
44
+ end
45
+
46
+ end
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+ require 'protobuf'
3
+
4
+ RSpec.describe ::Protobuf do
5
+ describe '.print_deprecation_warnings?' do
6
+ before { described_class.instance_variable_set(:@print_deprecation_warnings, nil) }
7
+
8
+ it 'defaults to a true value' do
9
+ expect(described_class.print_deprecation_warnings?).to be true
10
+ end
11
+
12
+ it 'is settable' do
13
+ described_class.print_deprecation_warnings = false
14
+ expect(described_class.print_deprecation_warnings?).to be false
15
+ end
16
+
17
+ context 'when ENV["PB_IGNORE_DEPRECATIONS"] present' do
18
+ it 'defaults to a false value' do
19
+ ENV['PB_IGNORE_DEPRECATIONS'] = '1'
20
+ expect(described_class.print_deprecation_warnings?).to be false
21
+ end
22
+ end
23
+ end
24
+
25
+ describe '.ignore_unknown_fields?' do
26
+ before do
27
+ if described_class.instance_variable_defined?(:@_ignore_unknown_fields)
28
+ described_class.send(:remove_instance_variable, :@_ignore_unknown_fields)
29
+ end
30
+ end
31
+
32
+ it 'defaults to a true value' do
33
+ expect(described_class.ignore_unknown_fields?).to be true
34
+ end
35
+
36
+ it 'is settable' do
37
+ expect do
38
+ described_class.ignore_unknown_fields = false
39
+ end.to change {
40
+ described_class.ignore_unknown_fields?
41
+ }.from(true).to(false)
42
+ end
43
+ end
44
+
45
+ end
@@ -0,0 +1,9 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ require 'protobuf'
3
+
4
+ $LOAD_PATH << ::File.expand_path("../../lib/protobuf/descriptors", __FILE__)
5
+ require 'google/protobuf/compiler/plugin.pb'
6
+
7
+ $LOAD_PATH << ::File.expand_path('../support', __FILE__)
8
+ support_proto_glob = File.expand_path('../support/**/*.pb.rb', __FILE__)
9
+ Dir[support_proto_glob].each { |proto_file| require proto_file }
@@ -0,0 +1,22 @@
1
+ if defined?(RSpec)
2
+ shared_examples_for :packable_field do |field_klass|
3
+
4
+ before(:all) do
5
+ unless defined?(PackableFieldTest)
6
+ class PackableFieldTest < ::Protobuf::Message; end
7
+ end
8
+
9
+ field_name = "#{field_klass.name.split('::').last.underscore}_packed_field".to_sym
10
+ tag_num = PackableFieldTest.fields.size + 1
11
+ PackableFieldTest.repeated(field_klass, field_name, tag_num, :packed => true)
12
+ end
13
+
14
+ let(:field_name) { "#{field_klass.name.split('::').last.underscore}_packed_field".to_sym }
15
+ let(:message_instance) { PackableFieldTest.new(field_name => [100, 200, 300]) }
16
+
17
+ subject { PackableFieldTest.get_field(field_name) }
18
+
19
+ specify { expect(subject).to be_packed }
20
+
21
+ end
22
+ end
@@ -0,0 +1,119 @@
1
+ optional_int32: 101
2
+ optional_int64: 102
3
+ optional_uint32: 103
4
+ optional_uint64: 104
5
+ optional_sint32: 105
6
+ optional_sint64: 106
7
+ optional_fixed32: 107
8
+ optional_fixed64: 108
9
+ optional_sfixed32: 109
10
+ optional_sfixed64: 110
11
+ optional_float: 111
12
+ optional_double: 112
13
+ optional_bool: true
14
+ optional_string: "115"
15
+ optional_bytes: "116"
16
+ optional_nested_message {
17
+ bb: 118
18
+ }
19
+ optional_foreign_message {
20
+ c: 119
21
+ }
22
+ optional_import_message {
23
+ d: 120
24
+ }
25
+ optional_nested_enum: BAZ
26
+ optional_foreign_enum: FOREIGN_BAZ
27
+ optional_import_enum: IMPORT_BAZ
28
+ optional_string_piece: "124"
29
+ optional_cord: "125"
30
+ optional_public_import_message {
31
+ e: 126
32
+ }
33
+ optional_lazy_message {
34
+ bb: 127
35
+ }
36
+ repeated_int32: 201
37
+ repeated_int32: 301
38
+ repeated_int64: 202
39
+ repeated_int64: 302
40
+ repeated_uint32: 203
41
+ repeated_uint32: 303
42
+ repeated_uint64: 204
43
+ repeated_uint64: 304
44
+ repeated_sint32: 205
45
+ repeated_sint32: 305
46
+ repeated_sint64: 206
47
+ repeated_sint64: 306
48
+ repeated_fixed32: 207
49
+ repeated_fixed32: 307
50
+ repeated_fixed64: 208
51
+ repeated_fixed64: 308
52
+ repeated_sfixed32: 209
53
+ repeated_sfixed32: 309
54
+ repeated_sfixed64: 210
55
+ repeated_sfixed64: 310
56
+ repeated_float: 211
57
+ repeated_float: 311
58
+ repeated_double: 212
59
+ repeated_double: 312
60
+ repeated_bool: true
61
+ repeated_bool: false
62
+ repeated_string: "215"
63
+ repeated_string: "315"
64
+ repeated_bytes: "216"
65
+ repeated_bytes: "316"
66
+ repeated_nested_message {
67
+ bb: 218
68
+ }
69
+ repeated_nested_message {
70
+ bb: 318
71
+ }
72
+ repeated_foreign_message {
73
+ c: 219
74
+ }
75
+ repeated_foreign_message {
76
+ c: 319
77
+ }
78
+ repeated_import_message {
79
+ d: 220
80
+ }
81
+ repeated_import_message {
82
+ d: 320
83
+ }
84
+ repeated_nested_enum: BAR
85
+ repeated_nested_enum: BAZ
86
+ repeated_foreign_enum: FOREIGN_BAR
87
+ repeated_foreign_enum: FOREIGN_BAZ
88
+ repeated_import_enum: IMPORT_BAR
89
+ repeated_import_enum: IMPORT_BAZ
90
+ repeated_string_piece: "224"
91
+ repeated_string_piece: "324"
92
+ repeated_cord: "225"
93
+ repeated_cord: "325"
94
+ repeated_lazy_message {
95
+ bb: 227
96
+ }
97
+ repeated_lazy_message {
98
+ bb: 327
99
+ }
100
+ default_int32: 401
101
+ default_int64: 402
102
+ default_uint32: 403
103
+ default_uint64: 404
104
+ default_sint32: 405
105
+ default_sint64: 406
106
+ default_fixed32: 407
107
+ default_fixed64: 408
108
+ default_sfixed32: 409
109
+ default_sfixed64: 410
110
+ default_float: 411
111
+ default_double: 412
112
+ default_bool: false
113
+ default_string: "415"
114
+ default_bytes: "416"
115
+ default_nested_enum: FOO
116
+ default_foreign_enum: FOREIGN_FOO
117
+ default_import_enum: IMPORT_FOO
118
+ default_string_piece: "424"
119
+ default_cord: "425"
@@ -0,0 +1,14 @@
1
+ enum Texture {
2
+ FATTY = 0;
3
+ CRUNCHY = 1;
4
+ CEMENT = 2;
5
+ }
6
+
7
+ message Bacon {
8
+ optional uint32 deliciousness = 1;
9
+ optional Texture texture = 2 [default = CEMENT];
10
+ }
11
+
12
+ service BaconService {
13
+ rpc Moar (Bacon) returns (Bacon);
14
+ }
@@ -0,0 +1,27 @@
1
+ # encoding: utf-8
2
+
3
+ ##
4
+ # This file is auto-generated. DO NOT EDIT!
5
+ #
6
+ require 'protobuf/message'
7
+
8
+ module Test
9
+
10
+ ##
11
+ # Message Classes
12
+ #
13
+ class Defaults < ::Protobuf::Message; end
14
+
15
+
16
+ ##
17
+ # Message Fields
18
+ #
19
+ class Defaults
20
+ optional :bytes, :escaped_bytes, 1, :default => "\000\001\007\010\014\n\r\t\013\\\\'\"\376"
21
+ optional :double, :infinity_default, 2, :default => ::Float::INFINITY
22
+ optional :float, :neg_infinity_default, 3, :default => -::Float::INFINITY
23
+ optional :double, :nan_default, 4, :default => ::Float::NAN
24
+ end
25
+
26
+ end
27
+
@@ -0,0 +1,9 @@
1
+ package test;
2
+
3
+ message Defaults {
4
+ optional bytes escaped_bytes = 1 [default = "\0\001\a\b\f\n\r\t\v\\\'\"\xfe"];
5
+ optional double infinity_default = 2 [default = inf];
6
+ optional float neg_infinity_default = 3 [default = -inf];
7
+ optional double nan_default = 4 [default = nan];
8
+ }
9
+
@@ -0,0 +1,61 @@
1
+ # encoding: utf-8
2
+
3
+ ##
4
+ # This file is auto-generated. DO NOT EDIT!
5
+ #
6
+ require 'protobuf/message'
7
+
8
+
9
+ ##
10
+ # Imports
11
+ #
12
+ require 'test/resource.pb'
13
+
14
+ module Test
15
+
16
+ ##
17
+ # Enum Classes
18
+ #
19
+ class EnumTestType < ::Protobuf::Enum
20
+ define :ONE, 1
21
+ define :TWO, 2
22
+ end
23
+
24
+ class AliasedEnum < ::Protobuf::Enum
25
+ set_option :allow_alias
26
+
27
+ define :THREE, 3
28
+ define :TRES, 3
29
+ define :FOUR, 4
30
+ define :CUATRO, 4
31
+ end
32
+
33
+
34
+ ##
35
+ # Message Classes
36
+ #
37
+ class EnumTestMessage < ::Protobuf::Message; end
38
+
39
+
40
+ ##
41
+ # Message Fields
42
+ #
43
+ class EnumTestMessage
44
+ optional ::Test::EnumTestType, :non_default_enum, 1
45
+ optional ::Test::EnumTestType, :default_enum, 2, :default => ::Test::EnumTestType::ONE
46
+ repeated ::Test::EnumTestType, :repeated_enums, 3
47
+ optional ::Test::AliasedEnum, :alias_non_default_enum, 4
48
+ optional ::Test::AliasedEnum, :alias_default_enum, 5, :default => ::Test::AliasedEnum::CUATRO
49
+ repeated ::Test::AliasedEnum, :alias_repeated_enums, 6
50
+ end
51
+
52
+
53
+ ##
54
+ # Extended Message Fields
55
+ #
56
+ class ::Test::Resource < ::Protobuf::Message
57
+ optional :int32, :ext_other_file_defined_field, 200, :extension => true
58
+ end
59
+
60
+ end
61
+
@@ -0,0 +1,34 @@
1
+ package test;
2
+ import 'test/resource.proto';
3
+
4
+ // Test extending another message from an imported file.
5
+
6
+ enum EnumTestType {
7
+ ONE = 1;
8
+ TWO = 2;
9
+ }
10
+
11
+ // Uses aliases
12
+ enum AliasedEnum {
13
+ option allow_alias = true;
14
+
15
+ THREE = 3;
16
+ TRES = 3;
17
+
18
+ FOUR = 4;
19
+ CUATRO = 4;
20
+ }
21
+
22
+ message EnumTestMessage {
23
+ optional EnumTestType non_default_enum = 1;
24
+ optional EnumTestType default_enum = 2 [default=ONE];
25
+ repeated EnumTestType repeated_enums = 3;
26
+
27
+ optional AliasedEnum alias_non_default_enum = 4;
28
+ optional AliasedEnum alias_default_enum = 5 [default=CUATRO];
29
+ repeated AliasedEnum alias_repeated_enums = 6;
30
+ }
31
+
32
+ extend test.Resource {
33
+ optional int32 ext_other_file_defined_field = 200;
34
+ }
@@ -0,0 +1,24 @@
1
+ # encoding: utf-8
2
+
3
+ ##
4
+ # This file is auto-generated. DO NOT EDIT!
5
+ #
6
+ require 'protobuf/message'
7
+
8
+
9
+ ##
10
+ # Imports
11
+ #
12
+ require 'test/resource.pb'
13
+
14
+ module Test
15
+
16
+ ##
17
+ # Extended Message Fields
18
+ #
19
+ class ::Test::Resource < ::Protobuf::Message
20
+ optional :int64, :deleted_at, 300, :extension => true
21
+ end
22
+
23
+ end
24
+
@@ -0,0 +1,10 @@
1
+ package test;
2
+ import 'test/resource.proto';
3
+
4
+ // Test that we will re-open a class and add
5
+ // extension fields to it even if there are no
6
+ // message or enum definitions in this FileDescriptor.
7
+
8
+ extend test.Resource {
9
+ optional int64 deleted_at = 300;
10
+ }
@@ -0,0 +1,530 @@
1
+ # encoding: utf-8
2
+
3
+ ##
4
+ # This file is auto-generated. DO NOT EDIT!
5
+ #
6
+ require 'protobuf/message'
7
+
8
+ ##
9
+ # Imports
10
+ #
11
+ require 'test/google_unittest_import.pb'
12
+
13
+ module GoogleUnittest
14
+
15
+ ##
16
+ # Enum Classes
17
+ #
18
+ class ForeignEnum < ::Protobuf::Enum
19
+ define :FOREIGN_FOO, 4
20
+ define :FOREIGN_BAR, 5
21
+ define :FOREIGN_BAZ, 6
22
+ end
23
+
24
+ class TestSparseEnum < ::Protobuf::Enum
25
+ define :SPARSE_A, 123
26
+ define :SPARSE_B, 62374
27
+ define :SPARSE_C, 12589234
28
+ define :SPARSE_D, -15
29
+ define :SPARSE_E, -53452
30
+ define :SPARSE_F, 0
31
+ define :SPARSE_G, 2
32
+ end
33
+
34
+
35
+ ##
36
+ # Message Classes
37
+ #
38
+ class TestAllTypes < ::Protobuf::Message
39
+ class NestedEnum < ::Protobuf::Enum
40
+ define :FOO, 1
41
+ define :BAR, 2
42
+ define :BAZ, 3
43
+ end
44
+
45
+ class NestedMessage < ::Protobuf::Message; end
46
+
47
+ end
48
+
49
+ class TestDeprecatedFields < ::Protobuf::Message; end
50
+ class ForeignMessage < ::Protobuf::Message; end
51
+ class TestAllExtensions < ::Protobuf::Message; end
52
+ class TestNestedExtension < ::Protobuf::Message; end
53
+ class TestRequired < ::Protobuf::Message; end
54
+ class TestRequiredForeign < ::Protobuf::Message; end
55
+ class TestForeignNested < ::Protobuf::Message; end
56
+ class TestEmptyMessage < ::Protobuf::Message; end
57
+ class TestEmptyMessageWithExtensions < ::Protobuf::Message; end
58
+ class TestMultipleExtensionRanges < ::Protobuf::Message; end
59
+ class TestReallyLargeTagNumber < ::Protobuf::Message; end
60
+ class TestRecursiveMessage < ::Protobuf::Message; end
61
+ class TestMutualRecursionA < ::Protobuf::Message; end
62
+ class TestMutualRecursionB < ::Protobuf::Message; end
63
+ class TestDupFieldNumber < ::Protobuf::Message; end
64
+ class TestEagerMessage < ::Protobuf::Message; end
65
+ class TestLazyMessage < ::Protobuf::Message; end
66
+ class TestNestedMessageHasBits < ::Protobuf::Message
67
+ class NestedMessage < ::Protobuf::Message; end
68
+
69
+ end
70
+
71
+ class TestCamelCaseFieldNames < ::Protobuf::Message; end
72
+ class TestFieldOrderings < ::Protobuf::Message; end
73
+ class TestExtremeDefaultValues < ::Protobuf::Message; end
74
+ class SparseEnumMessage < ::Protobuf::Message; end
75
+ class OneString < ::Protobuf::Message; end
76
+ class MoreString < ::Protobuf::Message; end
77
+ class OneBytes < ::Protobuf::Message; end
78
+ class MoreBytes < ::Protobuf::Message; end
79
+ class TestPackedTypes < ::Protobuf::Message; end
80
+ class TestUnpackedTypes < ::Protobuf::Message; end
81
+ class TestPackedExtensions < ::Protobuf::Message; end
82
+ class TestDynamicExtensions < ::Protobuf::Message
83
+ class DynamicEnumType < ::Protobuf::Enum
84
+ define :DYNAMIC_FOO, 2200
85
+ define :DYNAMIC_BAR, 2201
86
+ define :DYNAMIC_BAZ, 2202
87
+ end
88
+
89
+ class DynamicMessageType < ::Protobuf::Message; end
90
+
91
+ end
92
+
93
+ class TestRepeatedScalarDifferentTagSizes < ::Protobuf::Message; end
94
+ class TestParsingMerge < ::Protobuf::Message
95
+ class RepeatedFieldsGenerator < ::Protobuf::Message; end
96
+
97
+ end
98
+
99
+ class TestCommentInjectionMessage < ::Protobuf::Message; end
100
+ class FooRequest < ::Protobuf::Message; end
101
+ class FooResponse < ::Protobuf::Message; end
102
+ class FooClientMessage < ::Protobuf::Message; end
103
+ class FooServerMessage < ::Protobuf::Message; end
104
+ class BarRequest < ::Protobuf::Message; end
105
+ class BarResponse < ::Protobuf::Message; end
106
+
107
+
108
+ ##
109
+ # Message Fields
110
+ #
111
+ class TestAllTypes
112
+ class NestedMessage
113
+ optional :int32, :bb, 1
114
+ end
115
+
116
+ optional :int32, :optional_int32, 1
117
+ optional :int64, :optional_int64, 2
118
+ optional :uint32, :optional_uint32, 3
119
+ optional :uint64, :optional_uint64, 4
120
+ optional :sint32, :optional_sint32, 5
121
+ optional :sint64, :optional_sint64, 6
122
+ optional :fixed32, :optional_fixed32, 7
123
+ optional :fixed64, :optional_fixed64, 8
124
+ optional :sfixed32, :optional_sfixed32, 9
125
+ optional :sfixed64, :optional_sfixed64, 10
126
+ optional :float, :optional_float, 11
127
+ optional :double, :optional_double, 12
128
+ optional :bool, :optional_bool, 13
129
+ optional :string, :optional_string, 14
130
+ optional :bytes, :optional_bytes, 15
131
+ optional ::GoogleUnittest::TestAllTypes::NestedMessage, :optional_nested_message, 18
132
+ optional ::GoogleUnittest::ForeignMessage, :optional_foreign_message, 19
133
+ optional ::GoogleUnittestImport::ImportMessage, :optional_import_message, 20
134
+ optional ::GoogleUnittest::TestAllTypes::NestedEnum, :optional_nested_enum, 21
135
+ optional ::GoogleUnittest::ForeignEnum, :optional_foreign_enum, 22
136
+ optional ::GoogleUnittestImport::ImportEnum, :optional_import_enum, 23
137
+ optional :string, :optional_string_piece, 24
138
+ optional :string, :optional_cord, 25
139
+ optional ::GoogleUnittestImport::PublicImportMessage, :optional_public_import_message, 26
140
+ optional ::GoogleUnittest::TestAllTypes::NestedMessage, :optional_lazy_message, 27
141
+ repeated :int32, :repeated_int32, 31
142
+ repeated :int64, :repeated_int64, 32
143
+ repeated :uint32, :repeated_uint32, 33
144
+ repeated :uint64, :repeated_uint64, 34
145
+ repeated :sint32, :repeated_sint32, 35
146
+ repeated :sint64, :repeated_sint64, 36
147
+ repeated :fixed32, :repeated_fixed32, 37
148
+ repeated :fixed64, :repeated_fixed64, 38
149
+ repeated :sfixed32, :repeated_sfixed32, 39
150
+ repeated :sfixed64, :repeated_sfixed64, 40
151
+ repeated :float, :repeated_float, 41
152
+ repeated :double, :repeated_double, 42
153
+ repeated :bool, :repeated_bool, 43
154
+ repeated :string, :repeated_string, 44
155
+ repeated :bytes, :repeated_bytes, 45
156
+ repeated ::GoogleUnittest::TestAllTypes::NestedMessage, :repeated_nested_message, 48
157
+ repeated ::GoogleUnittest::ForeignMessage, :repeated_foreign_message, 49
158
+ repeated ::GoogleUnittestImport::ImportMessage, :repeated_import_message, 50
159
+ repeated ::GoogleUnittest::TestAllTypes::NestedEnum, :repeated_nested_enum, 51
160
+ repeated ::GoogleUnittest::ForeignEnum, :repeated_foreign_enum, 52
161
+ repeated ::GoogleUnittestImport::ImportEnum, :repeated_import_enum, 53
162
+ repeated :string, :repeated_string_piece, 54
163
+ repeated :string, :repeated_cord, 55
164
+ repeated ::GoogleUnittest::TestAllTypes::NestedMessage, :repeated_lazy_message, 57
165
+ optional :int32, :default_int32, 61, :default => 41
166
+ optional :int64, :default_int64, 62, :default => 42
167
+ optional :uint32, :default_uint32, 63, :default => 43
168
+ optional :uint64, :default_uint64, 64, :default => 44
169
+ optional :sint32, :default_sint32, 65, :default => -45
170
+ optional :sint64, :default_sint64, 66, :default => 46
171
+ optional :fixed32, :default_fixed32, 67, :default => 47
172
+ optional :fixed64, :default_fixed64, 68, :default => 48
173
+ optional :sfixed32, :default_sfixed32, 69, :default => 49
174
+ optional :sfixed64, :default_sfixed64, 70, :default => -50
175
+ optional :float, :default_float, 71, :default => 51.5
176
+ optional :double, :default_double, 72, :default => 52000
177
+ optional :bool, :default_bool, 73, :default => true
178
+ optional :string, :default_string, 74, :default => "hello"
179
+ optional :bytes, :default_bytes, 75, :default => "world"
180
+ optional ::GoogleUnittest::TestAllTypes::NestedEnum, :default_nested_enum, 81, :default => ::GoogleUnittest::TestAllTypes::NestedEnum::BAR
181
+ optional ::GoogleUnittest::ForeignEnum, :default_foreign_enum, 82, :default => ::GoogleUnittest::ForeignEnum::FOREIGN_BAR
182
+ optional ::GoogleUnittestImport::ImportEnum, :default_import_enum, 83, :default => ::GoogleUnittestImport::ImportEnum::IMPORT_BAR
183
+ optional :string, :default_string_piece, 84, :default => "abc"
184
+ optional :string, :default_cord, 85, :default => "123"
185
+ end
186
+
187
+ class TestDeprecatedFields
188
+ optional :int32, :deprecated_int32, 1, :deprecated => true
189
+ end
190
+
191
+ class ForeignMessage
192
+ optional :int32, :c, 1
193
+ end
194
+
195
+ class TestAllExtensions
196
+ # Extension Fields
197
+ extensions 1...536870912
198
+ optional :int32, :optional_int32_extension, 1, :extension => true
199
+ optional :int64, :optional_int64_extension, 2, :extension => true
200
+ optional :uint32, :optional_uint32_extension, 3, :extension => true
201
+ optional :uint64, :optional_uint64_extension, 4, :extension => true
202
+ optional :sint32, :optional_sint32_extension, 5, :extension => true
203
+ optional :sint64, :optional_sint64_extension, 6, :extension => true
204
+ optional :fixed32, :optional_fixed32_extension, 7, :extension => true
205
+ optional :fixed64, :optional_fixed64_extension, 8, :extension => true
206
+ optional :sfixed32, :optional_sfixed32_extension, 9, :extension => true
207
+ optional :sfixed64, :optional_sfixed64_extension, 10, :extension => true
208
+ optional :float, :optional_float_extension, 11, :extension => true
209
+ optional :double, :optional_double_extension, 12, :extension => true
210
+ optional :bool, :optional_bool_extension, 13, :extension => true
211
+ optional :string, :optional_string_extension, 14, :extension => true
212
+ optional :bytes, :optional_bytes_extension, 15, :extension => true
213
+ optional ::GoogleUnittest::TestAllTypes::NestedMessage, :optional_nested_message_extension, 18, :extension => true
214
+ optional ::GoogleUnittest::ForeignMessage, :optional_foreign_message_extension, 19, :extension => true
215
+ optional ::GoogleUnittestImport::ImportMessage, :optional_import_message_extension, 20, :extension => true
216
+ optional ::GoogleUnittest::TestAllTypes::NestedEnum, :optional_nested_enum_extension, 21, :extension => true
217
+ optional ::GoogleUnittest::ForeignEnum, :optional_foreign_enum_extension, 22, :extension => true
218
+ optional ::GoogleUnittestImport::ImportEnum, :optional_import_enum_extension, 23, :extension => true
219
+ optional :string, :optional_string_piece_extension, 24, :extension => true
220
+ optional :string, :optional_cord_extension, 25, :extension => true
221
+ optional ::GoogleUnittestImport::PublicImportMessage, :optional_public_import_message_extension, 26, :extension => true
222
+ optional ::GoogleUnittest::TestAllTypes::NestedMessage, :optional_lazy_message_extension, 27, :extension => true
223
+ repeated :int32, :repeated_int32_extension, 31, :extension => true
224
+ repeated :int64, :repeated_int64_extension, 32, :extension => true
225
+ repeated :uint32, :repeated_uint32_extension, 33, :extension => true
226
+ repeated :uint64, :repeated_uint64_extension, 34, :extension => true
227
+ repeated :sint32, :repeated_sint32_extension, 35, :extension => true
228
+ repeated :sint64, :repeated_sint64_extension, 36, :extension => true
229
+ repeated :fixed32, :repeated_fixed32_extension, 37, :extension => true
230
+ repeated :fixed64, :repeated_fixed64_extension, 38, :extension => true
231
+ repeated :sfixed32, :repeated_sfixed32_extension, 39, :extension => true
232
+ repeated :sfixed64, :repeated_sfixed64_extension, 40, :extension => true
233
+ repeated :float, :repeated_float_extension, 41, :extension => true
234
+ repeated :double, :repeated_double_extension, 42, :extension => true
235
+ repeated :bool, :repeated_bool_extension, 43, :extension => true
236
+ repeated :string, :repeated_string_extension, 44, :extension => true
237
+ repeated :bytes, :repeated_bytes_extension, 45, :extension => true
238
+ repeated ::GoogleUnittest::TestAllTypes::NestedMessage, :repeated_nested_message_extension, 48, :extension => true
239
+ repeated ::GoogleUnittest::ForeignMessage, :repeated_foreign_message_extension, 49, :extension => true
240
+ repeated ::GoogleUnittestImport::ImportMessage, :repeated_import_message_extension, 50, :extension => true
241
+ repeated ::GoogleUnittest::TestAllTypes::NestedEnum, :repeated_nested_enum_extension, 51, :extension => true
242
+ repeated ::GoogleUnittest::ForeignEnum, :repeated_foreign_enum_extension, 52, :extension => true
243
+ repeated ::GoogleUnittestImport::ImportEnum, :repeated_import_enum_extension, 53, :extension => true
244
+ repeated :string, :repeated_string_piece_extension, 54, :extension => true
245
+ repeated :string, :repeated_cord_extension, 55, :extension => true
246
+ repeated ::GoogleUnittest::TestAllTypes::NestedMessage, :repeated_lazy_message_extension, 57, :extension => true
247
+ optional :int32, :default_int32_extension, 61, :default => 41, :extension => true
248
+ optional :int64, :default_int64_extension, 62, :default => 42, :extension => true
249
+ optional :uint32, :default_uint32_extension, 63, :default => 43, :extension => true
250
+ optional :uint64, :default_uint64_extension, 64, :default => 44, :extension => true
251
+ optional :sint32, :default_sint32_extension, 65, :default => -45, :extension => true
252
+ optional :sint64, :default_sint64_extension, 66, :default => 46, :extension => true
253
+ optional :fixed32, :default_fixed32_extension, 67, :default => 47, :extension => true
254
+ optional :fixed64, :default_fixed64_extension, 68, :default => 48, :extension => true
255
+ optional :sfixed32, :default_sfixed32_extension, 69, :default => 49, :extension => true
256
+ optional :sfixed64, :default_sfixed64_extension, 70, :default => -50, :extension => true
257
+ optional :float, :default_float_extension, 71, :default => 51.5, :extension => true
258
+ optional :double, :default_double_extension, 72, :default => 52000, :extension => true
259
+ optional :bool, :default_bool_extension, 73, :default => true, :extension => true
260
+ optional :string, :default_string_extension, 74, :default => "hello", :extension => true
261
+ optional :bytes, :default_bytes_extension, 75, :default => "world", :extension => true
262
+ optional ::GoogleUnittest::TestAllTypes::NestedEnum, :default_nested_enum_extension, 81, :default => ::GoogleUnittest::TestAllTypes::NestedEnum::BAR, :extension => true
263
+ optional ::GoogleUnittest::ForeignEnum, :default_foreign_enum_extension, 82, :default => ::GoogleUnittest::ForeignEnum::FOREIGN_BAR, :extension => true
264
+ optional ::GoogleUnittestImport::ImportEnum, :default_import_enum_extension, 83, :default => ::GoogleUnittestImport::ImportEnum::IMPORT_BAR, :extension => true
265
+ optional :string, :default_string_piece_extension, 84, :default => "abc", :extension => true
266
+ optional :string, :default_cord_extension, 85, :default => "123", :extension => true
267
+ optional :string, :test, 1002, :default => "test", :extension => true
268
+ optional ::GoogleUnittest::TestRequired, :single, 1000, :extension => true
269
+ repeated ::GoogleUnittest::TestRequired, :multi, 1001, :extension => true
270
+ end
271
+
272
+ class TestRequired
273
+ required :int32, :a, 1
274
+ optional :int32, :dummy2, 2
275
+ required :int32, :b, 3
276
+ optional :int32, :dummy4, 4
277
+ optional :int32, :dummy5, 5
278
+ optional :int32, :dummy6, 6
279
+ optional :int32, :dummy7, 7
280
+ optional :int32, :dummy8, 8
281
+ optional :int32, :dummy9, 9
282
+ optional :int32, :dummy10, 10
283
+ optional :int32, :dummy11, 11
284
+ optional :int32, :dummy12, 12
285
+ optional :int32, :dummy13, 13
286
+ optional :int32, :dummy14, 14
287
+ optional :int32, :dummy15, 15
288
+ optional :int32, :dummy16, 16
289
+ optional :int32, :dummy17, 17
290
+ optional :int32, :dummy18, 18
291
+ optional :int32, :dummy19, 19
292
+ optional :int32, :dummy20, 20
293
+ optional :int32, :dummy21, 21
294
+ optional :int32, :dummy22, 22
295
+ optional :int32, :dummy23, 23
296
+ optional :int32, :dummy24, 24
297
+ optional :int32, :dummy25, 25
298
+ optional :int32, :dummy26, 26
299
+ optional :int32, :dummy27, 27
300
+ optional :int32, :dummy28, 28
301
+ optional :int32, :dummy29, 29
302
+ optional :int32, :dummy30, 30
303
+ optional :int32, :dummy31, 31
304
+ optional :int32, :dummy32, 32
305
+ required :int32, :c, 33
306
+ end
307
+
308
+ class TestRequiredForeign
309
+ optional ::GoogleUnittest::TestRequired, :optional_message, 1
310
+ repeated ::GoogleUnittest::TestRequired, :repeated_message, 2
311
+ optional :int32, :dummy, 3
312
+ end
313
+
314
+ class TestForeignNested
315
+ optional ::GoogleUnittest::TestAllTypes::NestedMessage, :foreign_nested, 1
316
+ end
317
+
318
+ class TestReallyLargeTagNumber
319
+ optional :int32, :a, 1
320
+ optional :int32, :bb, 268435455
321
+ end
322
+
323
+ class TestRecursiveMessage
324
+ optional ::GoogleUnittest::TestRecursiveMessage, :a, 1
325
+ optional :int32, :i, 2
326
+ end
327
+
328
+ class TestMutualRecursionA
329
+ optional ::GoogleUnittest::TestMutualRecursionB, :bb, 1
330
+ end
331
+
332
+ class TestMutualRecursionB
333
+ optional ::GoogleUnittest::TestMutualRecursionA, :a, 1
334
+ optional :int32, :optional_int32, 2
335
+ end
336
+
337
+ class TestDupFieldNumber
338
+ optional :int32, :a, 1
339
+ end
340
+
341
+ class TestEagerMessage
342
+ optional ::GoogleUnittest::TestAllTypes, :sub_message, 1
343
+ end
344
+
345
+ class TestLazyMessage
346
+ optional ::GoogleUnittest::TestAllTypes, :sub_message, 1
347
+ end
348
+
349
+ class TestNestedMessageHasBits
350
+ class NestedMessage
351
+ repeated :int32, :nestedmessage_repeated_int32, 1
352
+ repeated ::GoogleUnittest::ForeignMessage, :nestedmessage_repeated_foreignmessage, 2
353
+ end
354
+
355
+ optional ::GoogleUnittest::TestNestedMessageHasBits::NestedMessage, :optional_nested_message, 1
356
+ end
357
+
358
+ class TestCamelCaseFieldNames
359
+ optional :int32, :PrimitiveField, 1
360
+ optional :string, :StringField, 2
361
+ optional ::GoogleUnittest::ForeignEnum, :EnumField, 3
362
+ optional ::GoogleUnittest::ForeignMessage, :MessageField, 4
363
+ optional :string, :StringPieceField, 5
364
+ optional :string, :CordField, 6
365
+ repeated :int32, :RepeatedPrimitiveField, 7
366
+ repeated :string, :RepeatedStringField, 8
367
+ repeated ::GoogleUnittest::ForeignEnum, :RepeatedEnumField, 9
368
+ repeated ::GoogleUnittest::ForeignMessage, :RepeatedMessageField, 10
369
+ repeated :string, :RepeatedStringPieceField, 11
370
+ repeated :string, :RepeatedCordField, 12
371
+ end
372
+
373
+ class TestFieldOrderings
374
+ optional :string, :my_string, 11
375
+ optional :int64, :my_int, 1
376
+ optional :float, :my_float, 101
377
+ # Extension Fields
378
+ extensions 2...11
379
+ extensions 12...101
380
+ optional :string, :my_extension_string, 50, :extension => true
381
+ optional :int32, :my_extension_int, 5, :extension => true
382
+ end
383
+
384
+ class TestExtremeDefaultValues
385
+ optional :bytes, :escaped_bytes, 1, :default => "\000\001\007\010\014\n\r\t\013\\\\'\"\376"
386
+ optional :uint32, :large_uint32, 2, :default => 4294967295
387
+ optional :uint64, :large_uint64, 3, :default => 18446744073709551615
388
+ optional :int32, :small_int32, 4, :default => -2147483647
389
+ optional :int64, :small_int64, 5, :default => -9223372036854775807
390
+ optional :int32, :really_small_int32, 21, :default => -2147483648
391
+ optional :int64, :really_small_int64, 22, :default => -9223372036854775808
392
+ optional :string, :utf8_string, 6, :default => "ሴ"
393
+ optional :float, :zero_float, 7, :default => 0
394
+ optional :float, :one_float, 8, :default => 1
395
+ optional :float, :small_float, 9, :default => 1.5
396
+ optional :float, :negative_one_float, 10, :default => -1
397
+ optional :float, :negative_float, 11, :default => -1.5
398
+ optional :float, :large_float, 12, :default => 2e+08
399
+ optional :float, :small_negative_float, 13, :default => -8e-28
400
+ optional :double, :inf_double, 14, :default => ::Float::INFINITY
401
+ optional :double, :neg_inf_double, 15, :default => -::Float::INFINITY
402
+ optional :double, :nan_double, 16, :default => ::Float::NAN
403
+ optional :float, :inf_float, 17, :default => ::Float::INFINITY
404
+ optional :float, :neg_inf_float, 18, :default => -::Float::INFINITY
405
+ optional :float, :nan_float, 19, :default => ::Float::NAN
406
+ optional :string, :cpp_trigraph, 20, :default => "? ? ?? ?? ??? ??/ ??-"
407
+ optional :string, :string_with_zero, 23, :default => "hello"
408
+ optional :bytes, :bytes_with_zero, 24, :default => "wor\000ld"
409
+ optional :string, :string_piece_with_zero, 25, :default => "abc"
410
+ optional :string, :cord_with_zero, 26, :default => "123"
411
+ end
412
+
413
+ class SparseEnumMessage
414
+ optional ::GoogleUnittest::TestSparseEnum, :sparse_enum, 1
415
+ end
416
+
417
+ class OneString
418
+ optional :string, :data, 1
419
+ end
420
+
421
+ class MoreString
422
+ repeated :string, :data, 1
423
+ end
424
+
425
+ class OneBytes
426
+ optional :bytes, :data, 1
427
+ end
428
+
429
+ class MoreBytes
430
+ repeated :bytes, :data, 1
431
+ end
432
+
433
+ class TestPackedTypes
434
+ repeated :int32, :packed_int32, 90, :packed => true
435
+ repeated :int64, :packed_int64, 91, :packed => true
436
+ repeated :uint32, :packed_uint32, 92, :packed => true
437
+ repeated :uint64, :packed_uint64, 93, :packed => true
438
+ repeated :sint32, :packed_sint32, 94, :packed => true
439
+ repeated :sint64, :packed_sint64, 95, :packed => true
440
+ repeated :fixed32, :packed_fixed32, 96, :packed => true
441
+ repeated :fixed64, :packed_fixed64, 97, :packed => true
442
+ repeated :sfixed32, :packed_sfixed32, 98, :packed => true
443
+ repeated :sfixed64, :packed_sfixed64, 99, :packed => true
444
+ repeated :float, :packed_float, 100, :packed => true
445
+ repeated :double, :packed_double, 101, :packed => true
446
+ repeated :bool, :packed_bool, 102, :packed => true
447
+ repeated ::GoogleUnittest::ForeignEnum, :packed_enum, 103, :packed => true
448
+ end
449
+
450
+ class TestUnpackedTypes
451
+ repeated :int32, :unpacked_int32, 90
452
+ repeated :int64, :unpacked_int64, 91
453
+ repeated :uint32, :unpacked_uint32, 92
454
+ repeated :uint64, :unpacked_uint64, 93
455
+ repeated :sint32, :unpacked_sint32, 94
456
+ repeated :sint64, :unpacked_sint64, 95
457
+ repeated :fixed32, :unpacked_fixed32, 96
458
+ repeated :fixed64, :unpacked_fixed64, 97
459
+ repeated :sfixed32, :unpacked_sfixed32, 98
460
+ repeated :sfixed64, :unpacked_sfixed64, 99
461
+ repeated :float, :unpacked_float, 100
462
+ repeated :double, :unpacked_double, 101
463
+ repeated :bool, :unpacked_bool, 102
464
+ repeated ::GoogleUnittest::ForeignEnum, :unpacked_enum, 103
465
+ end
466
+
467
+ class TestPackedExtensions
468
+ # Extension Fields
469
+ extensions 1...536870912
470
+ repeated :int32, :packed_int32_extension, 90, :packed => true, :extension => true
471
+ repeated :int64, :packed_int64_extension, 91, :packed => true, :extension => true
472
+ repeated :uint32, :packed_uint32_extension, 92, :packed => true, :extension => true
473
+ repeated :uint64, :packed_uint64_extension, 93, :packed => true, :extension => true
474
+ repeated :sint32, :packed_sint32_extension, 94, :packed => true, :extension => true
475
+ repeated :sint64, :packed_sint64_extension, 95, :packed => true, :extension => true
476
+ repeated :fixed32, :packed_fixed32_extension, 96, :packed => true, :extension => true
477
+ repeated :fixed64, :packed_fixed64_extension, 97, :packed => true, :extension => true
478
+ repeated :sfixed32, :packed_sfixed32_extension, 98, :packed => true, :extension => true
479
+ repeated :sfixed64, :packed_sfixed64_extension, 99, :packed => true, :extension => true
480
+ repeated :float, :packed_float_extension, 100, :packed => true, :extension => true
481
+ repeated :double, :packed_double_extension, 101, :packed => true, :extension => true
482
+ repeated :bool, :packed_bool_extension, 102, :packed => true, :extension => true
483
+ repeated ::GoogleUnittest::ForeignEnum, :packed_enum_extension, 103, :packed => true, :extension => true
484
+ end
485
+
486
+ class TestDynamicExtensions
487
+ class DynamicMessageType
488
+ optional :int32, :dynamic_field, 2100
489
+ end
490
+
491
+ optional :fixed32, :scalar_extension, 2000
492
+ optional ::GoogleUnittest::ForeignEnum, :enum_extension, 2001
493
+ optional ::GoogleUnittest::TestDynamicExtensions::DynamicEnumType, :dynamic_enum_extension, 2002
494
+ optional ::GoogleUnittest::ForeignMessage, :message_extension, 2003
495
+ optional ::GoogleUnittest::TestDynamicExtensions::DynamicMessageType, :dynamic_message_extension, 2004
496
+ repeated :string, :repeated_extension, 2005
497
+ repeated :sint32, :packed_extension, 2006, :packed => true
498
+ end
499
+
500
+ class TestRepeatedScalarDifferentTagSizes
501
+ repeated :fixed32, :repeated_fixed32, 12
502
+ repeated :int32, :repeated_int32, 13
503
+ repeated :fixed64, :repeated_fixed64, 2046
504
+ repeated :int64, :repeated_int64, 2047
505
+ repeated :float, :repeated_float, 262142
506
+ repeated :uint64, :repeated_uint64, 262143
507
+ end
508
+
509
+ class TestParsingMerge
510
+ class RepeatedFieldsGenerator
511
+ repeated ::GoogleUnittest::TestAllTypes, :field1, 1
512
+ repeated ::GoogleUnittest::TestAllTypes, :field2, 2
513
+ repeated ::GoogleUnittest::TestAllTypes, :field3, 3
514
+ repeated ::GoogleUnittest::TestAllTypes, :ext1, 1000
515
+ repeated ::GoogleUnittest::TestAllTypes, :ext2, 1001
516
+ end
517
+
518
+ required ::GoogleUnittest::TestAllTypes, :required_all_types, 1
519
+ optional ::GoogleUnittest::TestAllTypes, :optional_all_types, 2
520
+ repeated ::GoogleUnittest::TestAllTypes, :repeated_all_types, 3
521
+ # Extension Fields
522
+ extensions 1000...536870912
523
+ optional ::GoogleUnittest::TestAllTypes, :optional_ext, 1000, :extension => true
524
+ repeated ::GoogleUnittest::TestAllTypes, :repeated_ext, 1001, :extension => true
525
+ end
526
+
527
+ class TestCommentInjectionMessage
528
+ optional :string, :a, 1, :default => "*/ <- Neither should this."
529
+ end
530
+ end