pluginlib_descriptor_test.proto 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. // Protos/pluginlib_descriptor_test.proto - test proto
  2. //
  3. // This source file is part of the Swift.org open source project
  4. //
  5. // Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
  6. // Licensed under Apache License v2.0 with Runtime Library Exception
  7. //
  8. // See http://swift.org/LICENSE.txt for license information
  9. // See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
  10. //
  11. // -----------------------------------------------------------------------------
  12. ///
  13. /// Test proto for Tests/SwiftProtobufPluginLibraryTests/Test_Descriptor.swift
  14. ///
  15. // -----------------------------------------------------------------------------
  16. syntax = "proto2";
  17. package swift_descriptor_test;
  18. // Use the option to test swift name generation.
  19. option swift_prefix = "SDT";
  20. import "google/protobuf/descriptor.proto";
  21. import "google/protobuf/compiler/plugin.proto";
  22. enum TopLevelEnum {
  23. VALUE_ZERO = 0;
  24. VALUE_ONE = 1;
  25. VALUE_TWO = 2;
  26. }
  27. message TopLevelMessage {
  28. enum SubEnum {
  29. SUB_VALUE_0 = 0;
  30. SUB_VALUE_1 = 1;
  31. SUB_VALUE_2 = 2;
  32. }
  33. message SubMessage {
  34. optional int32 field1 = 1;
  35. optional string field2 = 2;
  36. optional SubMessage field3 = 3;
  37. }
  38. optional string field1 = 1;
  39. optional int32 field2 = 2;
  40. oneof o {
  41. TopLevelEnum field3 = 3;
  42. SubEnum field4 = 4;
  43. SubMessage field5 = 5;
  44. TopLevelMessage2 field6 = 6;
  45. }
  46. }
  47. message TopLevelMessage2 {
  48. optional TopLevelMessage left = 1;
  49. optional TopLevelMessage2 right = 2;
  50. }
  51. message ExternalRefs {
  52. optional google.protobuf.DescriptorProto desc = 1;
  53. optional google.protobuf.compiler.Version ver = 2;
  54. }
  55. extend google.protobuf.FieldOptions {
  56. optional string ext_str = 90000;
  57. }
  58. message ScoperForExt {
  59. extend google.protobuf.MessageOptions {
  60. optional TopLevelEnum ext_enum = 99001;
  61. optional TopLevelMessage2 ext_msg = 99002;
  62. }
  63. }
  64. service SomeService {
  65. rpc Foo(google.protobuf.DescriptorProto) returns (google.protobuf.compiler.Version);
  66. rpc Bar(TopLevelMessage) returns (TopLevelMessage2);
  67. }
  68. message Proto2MessageForPresence {
  69. required string req_str_field = 1;
  70. required int32 req_int32_field = 2;
  71. required TopLevelEnum req_enum_field = 3;
  72. required TopLevelMessage req_message_field = 4;
  73. optional string opt_str_field = 11;
  74. optional int32 opt_int32_field = 12;
  75. optional TopLevelEnum opt_enum_field = 13;
  76. optional TopLevelMessage opt_message_field = 14;
  77. repeated string repeat_str_field = 21;
  78. repeated int32 repeat_int32_field = 22;
  79. repeated TopLevelEnum repeat_enum_field = 23;
  80. repeated TopLevelMessage repeat_message_field = 24;
  81. oneof o {
  82. string oneof_str_field = 31;
  83. int32 oneof_int32_field = 32;
  84. TopLevelEnum oneof_enum_field = 33;
  85. TopLevelMessage oneof_message_field = 34;
  86. }
  87. }
  88. // To check handling of extension ranges that are out of order.
  89. message MsgExtensionRangeOrdering {
  90. extensions 1, 3, 2, 4;
  91. extensions 7;
  92. reserved 8;
  93. extensions 9;
  94. extensions 100 to 110;
  95. reserved 121 to 125;
  96. extensions 126 to 130;
  97. extensions 111 to 120;
  98. }
  99. // To check handling of extension ranges that are out of order, have fields or
  100. // reserved things mix through them.
  101. message MsgExtensionRangeOrderingWithFields {
  102. extensions 1, 3, 2, 4;
  103. optional int32 field6 = 6;
  104. extensions 7;
  105. reserved 8;
  106. extensions 9;
  107. extensions 100 to 110;
  108. reserved 121 to 123;
  109. optional int32 field124 = 124;
  110. optional int32 field125 = 125;
  111. extensions 126 to 130;
  112. extensions 111 to 120;
  113. optional int32 field200 = 200;
  114. }
  115. // Intermixed ranges and fields so help ensure no merge issues
  116. message MsgExtensionRangeOrderingNoMerging {
  117. optional int32 field1 = 1;
  118. optional int32 field2 = 2;
  119. extensions 3 to 5;
  120. optional int32 field6 = 6;
  121. extensions 7 to 12;
  122. optional int32 field13 = 13;
  123. optional int32 field15 = 15;
  124. extensions 16 to 20;
  125. optional int32 field21 = 21;
  126. }