protobuf-core 3.5.0
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 +7 -0
- data/.gitignore +10 -0
- data/.rspec +2 -0
- data/.travis.yml +18 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +23 -0
- data/Rakefile +5 -0
- data/bin/protoc-gen-ruby +16 -0
- data/lib/protobuf.rb +27 -0
- data/lib/protobuf/code_generator.rb +44 -0
- data/lib/protobuf/core.rb +2 -0
- data/lib/protobuf/core/version.rb +5 -0
- data/lib/protobuf/decoder.rb +73 -0
- data/lib/protobuf/deprecation.rb +112 -0
- data/lib/protobuf/descriptors.rb +3 -0
- data/lib/protobuf/descriptors/google/protobuf/compiler/plugin.pb.rb +54 -0
- data/lib/protobuf/descriptors/google/protobuf/descriptor.pb.rb +251 -0
- data/lib/protobuf/encoder.rb +67 -0
- data/lib/protobuf/enum.rb +303 -0
- data/lib/protobuf/exceptions.rb +9 -0
- data/lib/protobuf/field.rb +74 -0
- data/lib/protobuf/field/base_field.rb +267 -0
- data/lib/protobuf/field/bool_field.rb +59 -0
- data/lib/protobuf/field/bytes_field.rb +82 -0
- data/lib/protobuf/field/double_field.rb +25 -0
- data/lib/protobuf/field/enum_field.rb +68 -0
- data/lib/protobuf/field/field_array.rb +87 -0
- data/lib/protobuf/field/fixed32_field.rb +25 -0
- data/lib/protobuf/field/fixed64_field.rb +28 -0
- data/lib/protobuf/field/float_field.rb +41 -0
- data/lib/protobuf/field/int32_field.rb +21 -0
- data/lib/protobuf/field/int64_field.rb +21 -0
- data/lib/protobuf/field/integer_field.rb +23 -0
- data/lib/protobuf/field/message_field.rb +65 -0
- data/lib/protobuf/field/sfixed32_field.rb +27 -0
- data/lib/protobuf/field/sfixed64_field.rb +28 -0
- data/lib/protobuf/field/signed_integer_field.rb +29 -0
- data/lib/protobuf/field/sint32_field.rb +21 -0
- data/lib/protobuf/field/sint64_field.rb +21 -0
- data/lib/protobuf/field/string_field.rb +34 -0
- data/lib/protobuf/field/uint32_field.rb +21 -0
- data/lib/protobuf/field/uint64_field.rb +21 -0
- data/lib/protobuf/field/varint_field.rb +73 -0
- data/lib/protobuf/generators/base.rb +70 -0
- data/lib/protobuf/generators/enum_generator.rb +41 -0
- data/lib/protobuf/generators/extension_generator.rb +27 -0
- data/lib/protobuf/generators/field_generator.rb +131 -0
- data/lib/protobuf/generators/file_generator.rb +132 -0
- data/lib/protobuf/generators/group_generator.rb +105 -0
- data/lib/protobuf/generators/message_generator.rb +98 -0
- data/lib/protobuf/generators/printable.rb +160 -0
- data/lib/protobuf/logging.rb +39 -0
- data/lib/protobuf/message.rb +193 -0
- data/lib/protobuf/message/fields.rb +133 -0
- data/lib/protobuf/message/serialization.rb +89 -0
- data/lib/protobuf/optionable.rb +23 -0
- data/lib/protobuf/wire_type.rb +10 -0
- data/proto/dynamic_discovery.proto +44 -0
- data/proto/google/protobuf/compiler/plugin.proto +147 -0
- data/proto/google/protobuf/descriptor.proto +620 -0
- data/proto/rpc.proto +62 -0
- data/protobuf-core.gemspec +31 -0
- data/spec/bin/protoc-gen-ruby_spec.rb +23 -0
- data/spec/data/data.bin +3 -0
- data/spec/data/types.bin +0 -0
- data/spec/encoding/all_types_spec.rb +105 -0
- data/spec/encoding/extreme_values_spec.rb +0 -0
- data/spec/functional/class_inheritance_spec.rb +52 -0
- data/spec/functional/compile_and_require_spec.rb +29 -0
- data/spec/lib/protobuf/base_spec.rb +84 -0
- data/spec/lib/protobuf/code_generator_spec.rb +60 -0
- data/spec/lib/protobuf/enum_generator_spec.rb +73 -0
- data/spec/lib/protobuf/enum_spec.rb +265 -0
- data/spec/lib/protobuf/extension_generator_spec.rb +42 -0
- data/spec/lib/protobuf/field/bool_field_spec.rb +51 -0
- data/spec/lib/protobuf/field/field_array_spec.rb +69 -0
- data/spec/lib/protobuf/field/float_field_spec.rb +55 -0
- data/spec/lib/protobuf/field/int32_field_spec.rb +90 -0
- data/spec/lib/protobuf/field/string_field_spec.rb +45 -0
- data/spec/lib/protobuf/field_generator_spec.rb +102 -0
- data/spec/lib/protobuf/field_spec.rb +191 -0
- data/spec/lib/protobuf/file_generator_spec.rb +32 -0
- data/spec/lib/protobuf/message_generator_spec.rb +0 -0
- data/spec/lib/protobuf/message_spec.rb +526 -0
- data/spec/lib/protobuf/optionable_spec.rb +46 -0
- data/spec/lib/protobuf_spec.rb +45 -0
- data/spec/spec_helper.rb +9 -0
- data/spec/support/packed_field.rb +22 -0
- data/spec/support/test/all_types.data.bin +0 -0
- data/spec/support/test/all_types.data.txt +119 -0
- data/spec/support/test/bacon.proto +14 -0
- data/spec/support/test/defaults.pb.rb +27 -0
- data/spec/support/test/defaults.proto +9 -0
- data/spec/support/test/enum.pb.rb +61 -0
- data/spec/support/test/enum.proto +34 -0
- data/spec/support/test/extended.pb.rb +24 -0
- data/spec/support/test/extended.proto +10 -0
- data/spec/support/test/extreme_values.data.bin +0 -0
- data/spec/support/test/google_unittest.pb.rb +530 -0
- data/spec/support/test/google_unittest.proto +713 -0
- data/spec/support/test/google_unittest_import.pb.rb +39 -0
- data/spec/support/test/google_unittest_import.proto +64 -0
- data/spec/support/test/google_unittest_import_public.pb.rb +10 -0
- data/spec/support/test/google_unittest_import_public.proto +38 -0
- data/spec/support/test/multi_field_extensions.pb.rb +58 -0
- data/spec/support/test/multi_field_extensions.proto +33 -0
- data/spec/support/test/resource.pb.rb +106 -0
- data/spec/support/test/resource.proto +94 -0
- metadata +306 -0
@@ -0,0 +1,39 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
##
|
4
|
+
# This file is auto-generated. DO NOT EDIT!
|
5
|
+
#
|
6
|
+
require 'protobuf/message'
|
7
|
+
|
8
|
+
module GoogleUnittestImport
|
9
|
+
|
10
|
+
##
|
11
|
+
# Enum Classes
|
12
|
+
#
|
13
|
+
class ImportEnum < ::Protobuf::Enum
|
14
|
+
define :IMPORT_FOO, 7
|
15
|
+
define :IMPORT_BAR, 8
|
16
|
+
define :IMPORT_BAZ, 9
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
##
|
21
|
+
# Message Classes
|
22
|
+
#
|
23
|
+
class PublicImportMessage < ::Protobuf::Message; end
|
24
|
+
class ImportMessage < ::Protobuf::Message; end
|
25
|
+
|
26
|
+
|
27
|
+
##
|
28
|
+
# Message Fields
|
29
|
+
#
|
30
|
+
class PublicImportMessage
|
31
|
+
optional :int32, :e, 1
|
32
|
+
end
|
33
|
+
|
34
|
+
class ImportMessage
|
35
|
+
optional :int32, :d, 1
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
@@ -0,0 +1,64 @@
|
|
1
|
+
// Protocol Buffers - Google's data interchange format
|
2
|
+
// Copyright 2008 Google Inc. All rights reserved.
|
3
|
+
// http://code.google.com/p/protobuf/
|
4
|
+
//
|
5
|
+
// Redistribution and use in source and binary forms, with or without
|
6
|
+
// modification, are permitted provided that the following conditions are
|
7
|
+
// met:
|
8
|
+
//
|
9
|
+
// * Redistributions of source code must retain the above copyright
|
10
|
+
// notice, this list of conditions and the following disclaimer.
|
11
|
+
// * Redistributions in binary form must reproduce the above
|
12
|
+
// copyright notice, this list of conditions and the following disclaimer
|
13
|
+
// in the documentation and/or other materials provided with the
|
14
|
+
// distribution.
|
15
|
+
// * Neither the name of Google Inc. nor the names of its
|
16
|
+
// contributors may be used to endorse or promote products derived from
|
17
|
+
// this software without specific prior written permission.
|
18
|
+
//
|
19
|
+
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
20
|
+
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
21
|
+
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
22
|
+
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
23
|
+
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
24
|
+
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
25
|
+
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
26
|
+
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
27
|
+
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
28
|
+
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
29
|
+
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
// Author: kenton@google.com (Kenton Varda)
|
32
|
+
// Based on original Protocol Buffers design by
|
33
|
+
// Sanjay Ghemawat, Jeff Dean, and others.
|
34
|
+
//
|
35
|
+
// A proto file which is imported by unittest.proto to test importing.
|
36
|
+
|
37
|
+
|
38
|
+
// We don't put this in a package within proto2 because we need to make sure
|
39
|
+
// that the generated code doesn't depend on being in the proto2 namespace.
|
40
|
+
// In test_util.h we do
|
41
|
+
// "using namespace unittest_import = protobuf_unittest_import".
|
42
|
+
package googleUnittestImport;
|
43
|
+
|
44
|
+
//############################## Test public import
|
45
|
+
// TODO: This will be supported in the next release of the
|
46
|
+
// compiler
|
47
|
+
// import public "test/google_unittest_import_public.proto";
|
48
|
+
|
49
|
+
message PublicImportMessage {
|
50
|
+
optional int32 e = 1;
|
51
|
+
}
|
52
|
+
|
53
|
+
//###############################
|
54
|
+
|
55
|
+
message ImportMessage {
|
56
|
+
optional int32 d = 1;
|
57
|
+
}
|
58
|
+
|
59
|
+
enum ImportEnum {
|
60
|
+
IMPORT_FOO = 7;
|
61
|
+
IMPORT_BAR = 8;
|
62
|
+
IMPORT_BAZ = 9;
|
63
|
+
}
|
64
|
+
|
@@ -0,0 +1,38 @@
|
|
1
|
+
// Protocol Buffers - Google's data interchange format
|
2
|
+
// Copyright 2008 Google Inc. All rights reserved.
|
3
|
+
// http://code.google.com/p/protobuf/
|
4
|
+
//
|
5
|
+
// Redistribution and use in source and binary forms, with or without
|
6
|
+
// modification, are permitted provided that the following conditions are
|
7
|
+
// met:
|
8
|
+
//
|
9
|
+
// * Redistributions of source code must retain the above copyright
|
10
|
+
// notice, this list of conditions and the following disclaimer.
|
11
|
+
// * Redistributions in binary form must reproduce the above
|
12
|
+
// copyright notice, this list of conditions and the following disclaimer
|
13
|
+
// in the documentation and/or other materials provided with the
|
14
|
+
// distribution.
|
15
|
+
// * Neither the name of Google Inc. nor the names of its
|
16
|
+
// contributors may be used to endorse or promote products derived from
|
17
|
+
// this software without specific prior written permission.
|
18
|
+
//
|
19
|
+
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
20
|
+
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
21
|
+
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
22
|
+
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
23
|
+
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
24
|
+
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
25
|
+
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
26
|
+
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
27
|
+
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
28
|
+
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
29
|
+
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
// Author: liujisi@google.com (Pherl Liu)
|
32
|
+
|
33
|
+
|
34
|
+
package googleUnittestImport;
|
35
|
+
|
36
|
+
//message PublicImportMessage {
|
37
|
+
// optional int32 e = 1;
|
38
|
+
//}
|
@@ -0,0 +1,58 @@
|
|
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 Header < ::Protobuf::Message
|
14
|
+
class Type < ::Protobuf::Enum
|
15
|
+
define :PayloadTypeA, 1
|
16
|
+
define :PayloadTypeB, 2
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
class PayloadA < ::Protobuf::Message
|
22
|
+
class Foo < ::Protobuf::Message; end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
class PayloadB < ::Protobuf::Message
|
27
|
+
class Foo < ::Protobuf::Message; end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
##
|
34
|
+
# Message Fields
|
35
|
+
#
|
36
|
+
class Header
|
37
|
+
required ::Test::Header::Type, :type, 1
|
38
|
+
# Extension Fields
|
39
|
+
extensions 100...536870912
|
40
|
+
optional ::Test::PayloadA, :payload, 100, :extension => true
|
41
|
+
end
|
42
|
+
|
43
|
+
class PayloadA
|
44
|
+
class Foo
|
45
|
+
optional :string, :foo_a, 1
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
class PayloadB
|
51
|
+
class Foo
|
52
|
+
optional :string, :foo_b, 1
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
package test;
|
2
|
+
|
3
|
+
message Header {
|
4
|
+
extensions 100 to max;
|
5
|
+
|
6
|
+
enum Type {
|
7
|
+
PayloadTypeA = 1;
|
8
|
+
PayloadTypeB = 2;
|
9
|
+
}
|
10
|
+
|
11
|
+
required Type type = 1;
|
12
|
+
}
|
13
|
+
|
14
|
+
message PayloadA {
|
15
|
+
message Foo {
|
16
|
+
optional string foo_a = 1;
|
17
|
+
}
|
18
|
+
|
19
|
+
extend Header {
|
20
|
+
optional PayloadA payload = 100;
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
message PayloadB {
|
25
|
+
message Foo {
|
26
|
+
optional string foo_b = 1;
|
27
|
+
}
|
28
|
+
|
29
|
+
// UNCOMMENT TO TEST RUNTIME FAILING WITH MULTIPLE FIELDS
|
30
|
+
// extend Header {
|
31
|
+
// optional PayloadB payload = 101;
|
32
|
+
//}
|
33
|
+
}
|
@@ -0,0 +1,106 @@
|
|
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
|
+
# Enum Classes
|
12
|
+
#
|
13
|
+
class StatusType < ::Protobuf::Enum
|
14
|
+
define :PENDING, 0
|
15
|
+
define :ENABLED, 1
|
16
|
+
define :DISABLED, 2
|
17
|
+
define :DELETED, 3
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
##
|
22
|
+
# Message Classes
|
23
|
+
#
|
24
|
+
class ResourceFindRequest < ::Protobuf::Message; end
|
25
|
+
class ResourceSleepRequest < ::Protobuf::Message; end
|
26
|
+
class Resource < ::Protobuf::Message; end
|
27
|
+
class ResourceWithRequiredField < ::Protobuf::Message; end
|
28
|
+
class Searchable < ::Protobuf::Message
|
29
|
+
class SearchType < ::Protobuf::Enum
|
30
|
+
define :FLAT, 1
|
31
|
+
define :NESTED, 2
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
class MessageParent < ::Protobuf::Message
|
37
|
+
class MessageChild < ::Protobuf::Message; end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
class Nested < ::Protobuf::Message
|
42
|
+
class NestedLevelOne < ::Protobuf::Message; end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
##
|
49
|
+
# Message Fields
|
50
|
+
#
|
51
|
+
class ResourceFindRequest
|
52
|
+
required :string, :name, 1
|
53
|
+
optional :bool, :active, 2
|
54
|
+
repeated :string, :widgets, 3
|
55
|
+
repeated :bytes, :widget_bytes, 4
|
56
|
+
end
|
57
|
+
|
58
|
+
class ResourceSleepRequest
|
59
|
+
optional :int32, :sleep, 1
|
60
|
+
end
|
61
|
+
|
62
|
+
class Resource
|
63
|
+
required :string, :name, 1
|
64
|
+
optional :int64, :date_created, 2
|
65
|
+
optional ::Test::StatusType, :status, 3
|
66
|
+
repeated ::Test::StatusType, :repeated_enum, 4
|
67
|
+
# Extension Fields
|
68
|
+
extensions 100...536870912
|
69
|
+
optional :bool, :ext_is_searchable, 100, :extension => true
|
70
|
+
optional :bool, :ext_is_hidden, 101, :extension => true
|
71
|
+
optional ::Test::Searchable::SearchType, :ext_search_type, 102, :default => ::Test::Searchable::SearchType::FLAT, :extension => true
|
72
|
+
optional :bool, :ext_nested_in_level_one, 105, :extension => true
|
73
|
+
optional :bool, :ext_dup_field, 106, :extension => true
|
74
|
+
end
|
75
|
+
|
76
|
+
class ResourceWithRequiredField
|
77
|
+
required :string, :foo_is_required, 1
|
78
|
+
end
|
79
|
+
|
80
|
+
class MessageParent
|
81
|
+
class MessageChild
|
82
|
+
optional :string, :child1, 1
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
|
87
|
+
class Nested
|
88
|
+
class NestedLevelOne
|
89
|
+
optional :bool, :level_one, 1, :default => true
|
90
|
+
# Extension Fields
|
91
|
+
extensions 100...102
|
92
|
+
optional :bool, :ext_nested_level_one_outer, 101, :extension => true
|
93
|
+
optional :bool, :ext_nested_level_one, 100, :extension => true
|
94
|
+
end
|
95
|
+
|
96
|
+
optional :string, :name, 1
|
97
|
+
optional ::Test::Resource, :resource, 2
|
98
|
+
repeated ::Test::Resource, :multiple_resources, 3
|
99
|
+
optional ::Test::StatusType, :status, 4
|
100
|
+
# Extension Fields
|
101
|
+
extensions 100...111
|
102
|
+
optional :string, :foo, 100, :extension => true
|
103
|
+
optional :int64, :bar, 101, :extension => true
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
@@ -0,0 +1,94 @@
|
|
1
|
+
package test;
|
2
|
+
|
3
|
+
enum StatusType {
|
4
|
+
PENDING = 0;
|
5
|
+
ENABLED = 1;
|
6
|
+
DISABLED = 2;
|
7
|
+
DELETED = 3;
|
8
|
+
}
|
9
|
+
|
10
|
+
message ResourceFindRequest {
|
11
|
+
required string name = 1;
|
12
|
+
optional bool active = 2;
|
13
|
+
repeated string widgets = 3;
|
14
|
+
repeated bytes widget_bytes = 4;
|
15
|
+
}
|
16
|
+
|
17
|
+
message ResourceSleepRequest {
|
18
|
+
optional int32 sleep = 1;
|
19
|
+
}
|
20
|
+
|
21
|
+
message Resource {
|
22
|
+
extensions 100 to max;
|
23
|
+
|
24
|
+
required string name = 1;
|
25
|
+
optional int64 date_created = 2;
|
26
|
+
optional StatusType status = 3;
|
27
|
+
repeated StatusType repeated_enum = 4;
|
28
|
+
}
|
29
|
+
|
30
|
+
message ResourceWithRequiredField {
|
31
|
+
required string foo_is_required = 1;
|
32
|
+
}
|
33
|
+
|
34
|
+
message Searchable {
|
35
|
+
enum SearchType {
|
36
|
+
FLAT = 1;
|
37
|
+
NESTED = 2;
|
38
|
+
}
|
39
|
+
|
40
|
+
extend test.Resource {
|
41
|
+
optional bool ext_is_searchable = 100;
|
42
|
+
optional bool ext_is_hidden = 101;
|
43
|
+
optional Searchable.SearchType ext_search_type = 102 [default=FLAT];
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
message MessageParent {
|
48
|
+
message MessageChild {
|
49
|
+
optional string child1 = 1;
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
message Nested {
|
54
|
+
extensions 100 to 110;
|
55
|
+
|
56
|
+
optional string name = 1;
|
57
|
+
optional Resource resource = 2;
|
58
|
+
repeated Resource multiple_resources = 3;
|
59
|
+
optional StatusType status = 4;
|
60
|
+
|
61
|
+
message NestedLevelOne {
|
62
|
+
extensions 100 to 101;
|
63
|
+
optional bool level_one = 1 [default=true];
|
64
|
+
|
65
|
+
extend Resource {
|
66
|
+
optional bool ext_nested_in_level_one = 105;
|
67
|
+
optional bool ext_dup_field = 106;
|
68
|
+
}
|
69
|
+
}
|
70
|
+
|
71
|
+
extend NestedLevelOne {
|
72
|
+
optional bool ext_nested_level_one = 100;
|
73
|
+
}
|
74
|
+
|
75
|
+
// extend Resource {
|
76
|
+
// optional bool ext_dup_field = 107;
|
77
|
+
// }
|
78
|
+
}
|
79
|
+
|
80
|
+
extend Nested {
|
81
|
+
optional string foo = 100;
|
82
|
+
optional int64 bar = 101;
|
83
|
+
}
|
84
|
+
|
85
|
+
extend Nested.NestedLevelOne {
|
86
|
+
optional bool ext_nested_level_one_outer = 101;
|
87
|
+
}
|
88
|
+
|
89
|
+
service ResourceService {
|
90
|
+
rpc Find (ResourceFindRequest) returns (Resource);
|
91
|
+
rpc FindWithRpcFailed (ResourceFindRequest) returns (Resource);
|
92
|
+
rpc FindWithSleep (ResourceSleepRequest) returns (Resource);
|
93
|
+
rpc FindNotImplemented (ResourceFindRequest) returns (Resource);
|
94
|
+
}
|