// Protos/pluginlib_descriptor_test.proto - test proto // // This source file is part of the Swift.org open source project // // Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors // Licensed under Apache License v2.0 with Runtime Library Exception // // See http://swift.org/LICENSE.txt for license information // See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // // ----------------------------------------------------------------------------- /// /// Test proto for Tests/SwiftProtobufPluginLibraryTests/Test_Descriptor.swift /// // ----------------------------------------------------------------------------- syntax = "proto2"; package swift_descriptor_test; // Use the option to test swift name generation. option swift_prefix = "SDT"; import "google/protobuf/descriptor.proto"; import "google/protobuf/compiler/plugin.proto"; enum TopLevelEnum { VALUE_ZERO = 0; VALUE_ONE = 1; VALUE_TWO = 2; } message TopLevelMessage { enum SubEnum { SUB_VALUE_0 = 0; SUB_VALUE_1 = 1; SUB_VALUE_2 = 2; } message SubMessage { optional int32 field1 = 1; optional string field2 = 2; optional SubMessage field3 = 3; } optional string field1 = 1; optional int32 field2 = 2; oneof o { TopLevelEnum field3 = 3; SubEnum field4 = 4; SubMessage field5 = 5; TopLevelMessage2 field6 = 6; } } message TopLevelMessage2 { optional TopLevelMessage left = 1; optional TopLevelMessage2 right = 2; } message ExternalRefs { optional google.protobuf.DescriptorProto desc = 1; optional google.protobuf.compiler.Version ver = 2; } extend google.protobuf.FieldOptions { optional string ext_str = 90000; } message ScoperForExt { extend google.protobuf.MessageOptions { optional TopLevelEnum ext_enum = 99001; optional TopLevelMessage2 ext_msg = 99002; } } service SomeService { rpc Foo(google.protobuf.DescriptorProto) returns (google.protobuf.compiler.Version); rpc Bar(TopLevelMessage) returns (TopLevelMessage2); } message Proto2MessageForPresence { required string req_str_field = 1; required int32 req_int32_field = 2; required TopLevelEnum req_enum_field = 3; required TopLevelMessage req_message_field = 4; optional string opt_str_field = 11; optional int32 opt_int32_field = 12; optional TopLevelEnum opt_enum_field = 13; optional TopLevelMessage opt_message_field = 14; repeated string repeat_str_field = 21; repeated int32 repeat_int32_field = 22; repeated TopLevelEnum repeat_enum_field = 23; repeated TopLevelMessage repeat_message_field = 24; oneof o { string oneof_str_field = 31; int32 oneof_int32_field = 32; TopLevelEnum oneof_enum_field = 33; TopLevelMessage oneof_message_field = 34; } } // To check handling of extension ranges that are out of order. message MsgExtensionRangeOrdering { extensions 1, 3, 2, 4; extensions 7; reserved 8; extensions 9; extensions 100 to 110; reserved 121 to 125; extensions 126 to 130; extensions 111 to 120; } // To check handling of extension ranges that are out of order, have fields or // reserved things mix through them. message MsgExtensionRangeOrderingWithFields { extensions 1, 3, 2, 4; optional int32 field6 = 6; extensions 7; reserved 8; extensions 9; extensions 100 to 110; reserved 121 to 123; optional int32 field124 = 124; optional int32 field125 = 125; extensions 126 to 130; extensions 111 to 120; optional int32 field200 = 200; } // Intermixed ranges and fields so help ensure no merge issues message MsgExtensionRangeOrderingNoMerging { optional int32 field1 = 1; optional int32 field2 = 2; extensions 3 to 5; optional int32 field6 = 6; extensions 7 to 12; optional int32 field13 = 13; optional int32 field15 = 15; extensions 16 to 20; optional int32 field21 = 21; }