alltypes.proto 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. syntax = "proto2";
  2. enum NonZeroBasedEnum {
  3. Two = 2;
  4. Three = 3;
  5. Four = 4;
  6. }
  7. message SubMessage {
  8. required string substuff1 = 1 [default = "1"];
  9. required int32 substuff2 = 2 [default = 2];
  10. optional fixed32 substuff3 = 65535 [default = 3];
  11. }
  12. message EmptyMessage {
  13. }
  14. enum HugeEnum {
  15. Negative = -2147483647; /* protoc doesn't accept -2147483648 here */
  16. Positive = 2147483647;
  17. }
  18. message Limits {
  19. required int32 int32_min = 1;
  20. required int32 int32_max = 2;
  21. required uint32 uint32_min = 3;
  22. required uint32 uint32_max = 4;
  23. required int64 int64_min = 5;
  24. required int64 int64_max = 6;
  25. required uint64 uint64_min = 7;
  26. required uint64 uint64_max = 8;
  27. required HugeEnum enum_min = 9;
  28. required HugeEnum enum_max = 10;
  29. required int32 largetag = 65535 [default = 0];
  30. }
  31. message IntSizes {
  32. required int32 req_int8 = 1 ;
  33. required uint32 req_uint8 = 2 ;
  34. required sint32 req_sint8 = 3 ;
  35. required int32 req_int16 = 4 ;
  36. required uint32 req_uint16 = 5 ;
  37. required sint32 req_sint16 = 6 ;
  38. }
  39. message DescriptorSize8 {
  40. required int32 first = 1;
  41. required int32 second = 22222;
  42. }
  43. enum MyEnum {
  44. Zero = 0;
  45. First = 1;
  46. Second = 2;
  47. Truth = 42;
  48. }
  49. message AllTypes {
  50. required int32 req_int32 = 1;
  51. required int64 req_int64 = 2;
  52. required uint32 req_uint32 = 3;
  53. required uint64 req_uint64 = 4;
  54. required sint32 req_sint32 = 5;
  55. required sint64 req_sint64 = 6;
  56. required bool req_bool = 7;
  57. required fixed32 req_fixed32 = 8;
  58. required sfixed32 req_sfixed32= 9;
  59. required float req_float = 10;
  60. required fixed64 req_fixed64 = 11;
  61. required sfixed64 req_sfixed64= 12;
  62. required double req_double = 13;
  63. required string req_string = 14;
  64. required bytes req_bytes = 15;
  65. required SubMessage req_submsg = 16;
  66. required MyEnum req_enum = 17;
  67. required EmptyMessage req_emptymsg = 18;
  68. required bytes req_fbytes = 19;
  69. repeated int32 rep_int32 = 21;
  70. repeated int64 rep_int64 = 22;
  71. repeated uint32 rep_uint32 = 23;
  72. repeated uint64 rep_uint64 = 24;
  73. repeated sint32 rep_sint32 = 25;
  74. repeated sint64 rep_sint64 = 26;
  75. repeated bool rep_bool = 27;
  76. repeated fixed32 rep_fixed32 = 28;
  77. repeated sfixed32 rep_sfixed32= 29;
  78. repeated float rep_float = 30;
  79. repeated fixed64 rep_fixed64 = 10031;
  80. repeated sfixed64 rep_sfixed64= 10032;
  81. repeated double rep_double = 10033;
  82. repeated string rep_string = 10034;
  83. repeated bytes rep_bytes = 10035;
  84. repeated SubMessage rep_submsg = 10036;
  85. repeated MyEnum rep_enum = 10037;
  86. repeated EmptyMessage rep_emptymsg = 10038;
  87. repeated bytes rep_fbytes = 10039;
  88. repeated int32 rep_farray = 10040;
  89. optional int32 opt_int32 = 10041 [default = 4041];
  90. optional int64 opt_int64 = 10042 [default = 4042];
  91. optional uint32 opt_uint32 = 10043 [default = 4043];
  92. optional uint64 opt_uint64 = 10044 [default = 4044];
  93. optional sint32 opt_sint32 = 10045 [default = 4045];
  94. optional sint64 opt_sint64 = 10046 [default = 4046];
  95. optional bool opt_bool = 10047 [default = false];
  96. optional fixed32 opt_fixed32 = 10048 [default = 4048];
  97. optional sfixed32 opt_sfixed32= 10049 [default = 4049];
  98. optional float opt_float = 10050 [default = 4050];
  99. optional fixed64 opt_fixed64 = 10051 [default = 4051];
  100. optional sfixed64 opt_sfixed64= 10052 [default = 4052];
  101. optional double opt_double = 10053 [default = 4053];
  102. optional string opt_string = 10054 [default = "4054"];
  103. optional bytes opt_bytes = 10055 [default = "\x34\x5C\x00\xff"];
  104. optional SubMessage opt_submsg = 10056;
  105. optional MyEnum opt_enum = 10057 [default = Second];
  106. optional EmptyMessage opt_emptymsg = 10058;
  107. optional bytes opt_fbytes = 10059 [default = "4059"];
  108. oneof oneof
  109. {
  110. SubMessage oneof_msg1 = 10060;
  111. EmptyMessage oneof_msg2 = 10061;
  112. }
  113. optional NonZeroBasedEnum opt_non_zero_based_enum = 10062;
  114. // Second fixed length array field to test the length check logic.
  115. repeated fixed32 rep_farray2 = 95 [packed = true];
  116. // Check support for custom integer sizes
  117. required IntSizes req_intsizes = 96;
  118. // Check support for 8-word descriptors
  119. required DescriptorSize8 req_ds8 = 97;
  120. // Check that extreme integer values are handled correctly
  121. required Limits req_limits = 98;
  122. // Just to make sure that the size of the fields has been calculated
  123. // properly, i.e. otherwise a bug in last field might not be detected.
  124. required int32 end = 10099;
  125. extensions 200 to 255;
  126. }