1// Protocol Buffers - Google's data interchange format
2// Copyright 2008 Google Inc.  All rights reserved.
3// https://developers.google.com/protocol-buffers/
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
31syntax = "proto3";
32
33package protobuf.experimental;
34
35option java_package = "com.google.protobuf.testing";
36option java_outer_classname = "Proto3Testing";
37
38message Proto3SpecialFieldName {
39  double regular_name = 1;
40  int32 cached_size = 2;
41  int64 serialized_size = 3;
42  string class = 4;
43}
44
45message Proto3Message {
46  enum TestEnum {
47    ZERO = 0;
48    ONE = 1;
49    TWO = 2;
50  }
51
52  double field_double_1 = 1;
53  float field_float_2 = 2;
54  int64 field_int64_3 = 3;
55  uint64 field_uint64_4 = 4;
56  int32 field_int32_5 = 5;
57  fixed64 field_fixed64_6 = 6;
58  fixed32 field_fixed32_7 = 7;
59  bool field_bool_8 = 8;
60  string field_string_9 = 9;
61  Proto3Message field_message_10 = 10;
62  bytes field_bytes_11 = 11;
63  uint32 field_uint32_12 = 12;
64  TestEnum field_enum_13 = 13;
65  sfixed32 field_sfixed32_14 = 14;
66  sfixed64 field_sfixed64_15 = 15;
67  sint32 field_sint32_16 = 16;
68  sint64 field_sint64_17 = 17;
69  repeated double field_double_list_18 = 18 [packed = false];
70  repeated float field_float_list_19 = 19 [packed = false];
71  repeated int64 field_int64_list_20 = 20 [packed = false];
72  repeated uint64 field_uint64_list_21 = 21 [packed = false];
73  repeated int32 field_int32_list_22 = 22 [packed = false];
74  repeated fixed64 field_fixed64_list_23 = 23 [packed = false];
75  repeated fixed32 field_fixed32_list_24 = 24 [packed = false];
76  repeated bool field_bool_list_25 = 25 [packed = false];
77  repeated string field_string_list_26 = 26 [packed = false];
78  repeated Proto3Message field_message_list_27 = 27 [packed = false];
79  repeated bytes field_bytes_list_28 = 28 [packed = false];
80  repeated uint32 field_uint32_list_29 = 29 [packed = false];
81  repeated TestEnum field_enum_list_30 = 30 [packed = false];
82  repeated sfixed32 field_sfixed32_list_31 = 31 [packed = false];
83  repeated sfixed64 field_sfixed64_list_32 = 32 [packed = false];
84  repeated sint32 field_sint32_list_33 = 33 [packed = false];
85  repeated sint64 field_sint64_list_34 = 34 [packed = false];
86  repeated double field_double_list_packed_35 = 35 [packed = true];
87  repeated float field_float_list_packed_36 = 36 [packed = true];
88  repeated int64 field_int64_list_packed_37 = 37 [packed = true];
89  repeated uint64 field_uint64_list_packed_38 = 38 [packed = true];
90  repeated int32 field_int32_list_packed_39 = 39 [packed = true];
91  repeated fixed64 field_fixed64_list_packed_40 = 40 [packed = true];
92  repeated fixed32 field_fixed32_list_packed_41 = 41 [packed = true];
93  repeated bool field_bool_list_packed_42 = 42 [packed = true];
94  repeated uint32 field_uint32_list_packed_43 = 43 [packed = true];
95  repeated TestEnum field_enum_list_packed_44 = 44 [packed = true];
96  repeated sfixed32 field_sfixed32_list_packed_45 = 45 [packed = true];
97  repeated sfixed64 field_sfixed64_list_packed_46 = 46 [packed = true];
98  repeated sint32 field_sint32_list_packed_47 = 47 [packed = true];
99  repeated sint64 field_sint64_list_packed_48 = 48 [packed = true];
100  oneof test_oneof {
101    double field_double_53 = 53;
102    float field_float_54 = 54;
103    int64 field_int64_55 = 55;
104    uint64 field_uint64_56 = 56;
105    int32 field_int32_57 = 57;
106    fixed64 field_fixed64_58 = 58;
107    fixed32 field_fixed32_59 = 59;
108    bool field_bool_60 = 60;
109    string field_string_61 = 61;
110    Proto3Message field_message_62 = 62;
111    bytes field_bytes_63 = 63;
112    uint32 field_uint32_64 = 64;
113    sfixed32 field_sfixed32_65 = 65;
114    sfixed64 field_sfixed64_66 = 66;
115    sint32 field_sint32_67 = 67;
116    sint64 field_sint64_68 = 68;
117  }
118}
119
120message Proto3Empty {}
121
122message Proto3MessageWithMaps {
123  map<bool, bool> field_map_bool_bool_1 = 1;
124  map<bool, bytes> field_map_bool_bytes_2 = 2;
125  map<bool, double> field_map_bool_double_3 = 3;
126  map<bool, Proto3Message.TestEnum> field_map_bool_enum_4 = 4;
127  map<bool, fixed32> field_map_bool_fixed32_5 = 5;
128  map<bool, fixed64> field_map_bool_fixed64_6 = 6;
129  map<bool, float> field_map_bool_float_7 = 7;
130  map<bool, int32> field_map_bool_int32_8 = 8;
131  map<bool, int64> field_map_bool_int64_9 = 9;
132  map<bool, Proto3Message> field_map_bool_message_10 = 10;
133  map<bool, sfixed32> field_map_bool_sfixed32_11 = 11;
134  map<bool, sfixed64> field_map_bool_sfixed64_12 = 12;
135  map<bool, sint32> field_map_bool_sint32_13 = 13;
136  map<bool, sint64> field_map_bool_sint64_14 = 14;
137  map<bool, string> field_map_bool_string_15 = 15;
138  map<bool, uint32> field_map_bool_uint32_16 = 16;
139  map<bool, uint64> field_map_bool_uint64_17 = 17;
140  map<fixed32, bool> field_map_fixed32_bool_18 = 18;
141  map<fixed32, bytes> field_map_fixed32_bytes_19 = 19;
142  map<fixed32, double> field_map_fixed32_double_20 = 20;
143  map<fixed32, Proto3Message.TestEnum> field_map_fixed32_enum_21 = 21;
144  map<fixed32, fixed32> field_map_fixed32_fixed32_22 = 22;
145  map<fixed32, fixed64> field_map_fixed32_fixed64_23 = 23;
146  map<fixed32, float> field_map_fixed32_float_24 = 24;
147  map<fixed32, int32> field_map_fixed32_int32_25 = 25;
148  map<fixed32, int64> field_map_fixed32_int64_26 = 26;
149  map<fixed32, Proto3Message> field_map_fixed32_message_27 = 27;
150  map<fixed32, sfixed32> field_map_fixed32_sfixed32_28 = 28;
151  map<fixed32, sfixed64> field_map_fixed32_sfixed64_29 = 29;
152  map<fixed32, sint32> field_map_fixed32_sint32_30 = 30;
153  map<fixed32, sint64> field_map_fixed32_sint64_31 = 31;
154  map<fixed32, string> field_map_fixed32_string_32 = 32;
155  map<fixed32, uint32> field_map_fixed32_uint32_33 = 33;
156  map<fixed32, uint64> field_map_fixed32_uint64_34 = 34;
157  map<fixed64, bool> field_map_fixed64_bool_35 = 35;
158  map<fixed64, bytes> field_map_fixed64_bytes_36 = 36;
159  map<fixed64, double> field_map_fixed64_double_37 = 37;
160  map<fixed64, Proto3Message.TestEnum> field_map_fixed64_enum_38 = 38;
161  map<fixed64, fixed32> field_map_fixed64_fixed32_39 = 39;
162  map<fixed64, fixed64> field_map_fixed64_fixed64_40 = 40;
163  map<fixed64, float> field_map_fixed64_float_41 = 41;
164  map<fixed64, int32> field_map_fixed64_int32_42 = 42;
165  map<fixed64, int64> field_map_fixed64_int64_43 = 43;
166  map<fixed64, Proto3Message> field_map_fixed64_message_44 = 44;
167  map<fixed64, sfixed32> field_map_fixed64_sfixed32_45 = 45;
168  map<fixed64, sfixed64> field_map_fixed64_sfixed64_46 = 46;
169  map<fixed64, sint32> field_map_fixed64_sint32_47 = 47;
170  map<fixed64, sint64> field_map_fixed64_sint64_48 = 48;
171  map<fixed64, string> field_map_fixed64_string_49 = 49;
172  map<fixed64, uint32> field_map_fixed64_uint32_50 = 50;
173  map<fixed64, uint64> field_map_fixed64_uint64_51 = 51;
174  map<int32, bool> field_map_int32_bool_52 = 52;
175  map<int32, bytes> field_map_int32_bytes_53 = 53;
176  map<int32, double> field_map_int32_double_54 = 54;
177  map<int32, Proto3Message.TestEnum> field_map_int32_enum_55 = 55;
178  map<int32, fixed32> field_map_int32_fixed32_56 = 56;
179  map<int32, fixed64> field_map_int32_fixed64_57 = 57;
180  map<int32, float> field_map_int32_float_58 = 58;
181  map<int32, int32> field_map_int32_int32_59 = 59;
182  map<int32, int64> field_map_int32_int64_60 = 60;
183  map<int32, Proto3Message> field_map_int32_message_61 = 61;
184  map<int32, sfixed32> field_map_int32_sfixed32_62 = 62;
185  map<int32, sfixed64> field_map_int32_sfixed64_63 = 63;
186  map<int32, sint32> field_map_int32_sint32_64 = 64;
187  map<int32, sint64> field_map_int32_sint64_65 = 65;
188  map<int32, string> field_map_int32_string_66 = 66;
189  map<int32, uint32> field_map_int32_uint32_67 = 67;
190  map<int32, uint64> field_map_int32_uint64_68 = 68;
191  map<int64, bool> field_map_int64_bool_69 = 69;
192  map<int64, bytes> field_map_int64_bytes_70 = 70;
193  map<int64, double> field_map_int64_double_71 = 71;
194  map<int64, Proto3Message.TestEnum> field_map_int64_enum_72 = 72;
195  map<int64, fixed32> field_map_int64_fixed32_73 = 73;
196  map<int64, fixed64> field_map_int64_fixed64_74 = 74;
197  map<int64, float> field_map_int64_float_75 = 75;
198  map<int64, int32> field_map_int64_int32_76 = 76;
199  map<int64, int64> field_map_int64_int64_77 = 77;
200  map<int64, Proto3Message> field_map_int64_message_78 = 78;
201  map<int64, sfixed32> field_map_int64_sfixed32_79 = 79;
202  map<int64, sfixed64> field_map_int64_sfixed64_80 = 80;
203  map<int64, sint32> field_map_int64_sint32_81 = 81;
204  map<int64, sint64> field_map_int64_sint64_82 = 82;
205  map<int64, string> field_map_int64_string_83 = 83;
206  map<int64, uint32> field_map_int64_uint32_84 = 84;
207  map<int64, uint64> field_map_int64_uint64_85 = 85;
208  map<sfixed32, bool> field_map_sfixed32_bool_86 = 86;
209  map<sfixed32, bytes> field_map_sfixed32_bytes_87 = 87;
210  map<sfixed32, double> field_map_sfixed32_double_88 = 88;
211  map<sfixed32, Proto3Message.TestEnum> field_map_sfixed32_enum_89 = 89;
212  map<sfixed32, fixed32> field_map_sfixed32_fixed32_90 = 90;
213  map<sfixed32, fixed64> field_map_sfixed32_fixed64_91 = 91;
214  map<sfixed32, float> field_map_sfixed32_float_92 = 92;
215  map<sfixed32, int32> field_map_sfixed32_int32_93 = 93;
216  map<sfixed32, int64> field_map_sfixed32_int64_94 = 94;
217  map<sfixed32, Proto3Message> field_map_sfixed32_message_95 = 95;
218  map<sfixed32, sfixed32> field_map_sfixed32_sfixed32_96 = 96;
219  map<sfixed32, sfixed64> field_map_sfixed32_sfixed64_97 = 97;
220  map<sfixed32, sint32> field_map_sfixed32_sint32_98 = 98;
221  map<sfixed32, sint64> field_map_sfixed32_sint64_99 = 99;
222  map<sfixed32, string> field_map_sfixed32_string_100 = 100;
223  map<sfixed32, uint32> field_map_sfixed32_uint32_101 = 101;
224  map<sfixed32, uint64> field_map_sfixed32_uint64_102 = 102;
225  map<sfixed64, bool> field_map_sfixed64_bool_103 = 103;
226  map<sfixed64, bytes> field_map_sfixed64_bytes_104 = 104;
227  map<sfixed64, double> field_map_sfixed64_double_105 = 105;
228  map<sfixed64, Proto3Message.TestEnum> field_map_sfixed64_enum_106 = 106;
229  map<sfixed64, fixed32> field_map_sfixed64_fixed32_107 = 107;
230  map<sfixed64, fixed64> field_map_sfixed64_fixed64_108 = 108;
231  map<sfixed64, float> field_map_sfixed64_float_109 = 109;
232  map<sfixed64, int32> field_map_sfixed64_int32_110 = 110;
233  map<sfixed64, int64> field_map_sfixed64_int64_111 = 111;
234  map<sfixed64, Proto3Message> field_map_sfixed64_message_112 = 112;
235  map<sfixed64, sfixed32> field_map_sfixed64_sfixed32_113 = 113;
236  map<sfixed64, sfixed64> field_map_sfixed64_sfixed64_114 = 114;
237  map<sfixed64, sint32> field_map_sfixed64_sint32_115 = 115;
238  map<sfixed64, sint64> field_map_sfixed64_sint64_116 = 116;
239  map<sfixed64, string> field_map_sfixed64_string_117 = 117;
240  map<sfixed64, uint32> field_map_sfixed64_uint32_118 = 118;
241  map<sfixed64, uint64> field_map_sfixed64_uint64_119 = 119;
242  map<sint32, bool> field_map_sint32_bool_120 = 120;
243  map<sint32, bytes> field_map_sint32_bytes_121 = 121;
244  map<sint32, double> field_map_sint32_double_122 = 122;
245  map<sint32, Proto3Message.TestEnum> field_map_sint32_enum_123 = 123;
246  map<sint32, fixed32> field_map_sint32_fixed32_124 = 124;
247  map<sint32, fixed64> field_map_sint32_fixed64_125 = 125;
248  map<sint32, float> field_map_sint32_float_126 = 126;
249  map<sint32, int32> field_map_sint32_int32_127 = 127;
250  map<sint32, int64> field_map_sint32_int64_128 = 128;
251  map<sint32, Proto3Message> field_map_sint32_message_129 = 129;
252  map<sint32, sfixed32> field_map_sint32_sfixed32_130 = 130;
253  map<sint32, sfixed64> field_map_sint32_sfixed64_131 = 131;
254  map<sint32, sint32> field_map_sint32_sint32_132 = 132;
255  map<sint32, sint64> field_map_sint32_sint64_133 = 133;
256  map<sint32, string> field_map_sint32_string_134 = 134;
257  map<sint32, uint32> field_map_sint32_uint32_135 = 135;
258  map<sint32, uint64> field_map_sint32_uint64_136 = 136;
259  map<sint64, bool> field_map_sint64_bool_137 = 137;
260  map<sint64, bytes> field_map_sint64_bytes_138 = 138;
261  map<sint64, double> field_map_sint64_double_139 = 139;
262  map<sint64, Proto3Message.TestEnum> field_map_sint64_enum_140 = 140;
263  map<sint64, fixed32> field_map_sint64_fixed32_141 = 141;
264  map<sint64, fixed64> field_map_sint64_fixed64_142 = 142;
265  map<sint64, float> field_map_sint64_float_143 = 143;
266  map<sint64, int32> field_map_sint64_int32_144 = 144;
267  map<sint64, int64> field_map_sint64_int64_145 = 145;
268  map<sint64, Proto3Message> field_map_sint64_message_146 = 146;
269  map<sint64, sfixed32> field_map_sint64_sfixed32_147 = 147;
270  map<sint64, sfixed64> field_map_sint64_sfixed64_148 = 148;
271  map<sint64, sint32> field_map_sint64_sint32_149 = 149;
272  map<sint64, sint64> field_map_sint64_sint64_150 = 150;
273  map<sint64, string> field_map_sint64_string_151 = 151;
274  map<sint64, uint32> field_map_sint64_uint32_152 = 152;
275  map<sint64, uint64> field_map_sint64_uint64_153 = 153;
276  map<string, bool> field_map_string_bool_154 = 154;
277  map<string, bytes> field_map_string_bytes_155 = 155;
278  map<string, double> field_map_string_double_156 = 156;
279  map<string, Proto3Message.TestEnum> field_map_string_enum_157 = 157;
280  map<string, fixed32> field_map_string_fixed32_158 = 158;
281  map<string, fixed64> field_map_string_fixed64_159 = 159;
282  map<string, float> field_map_string_float_160 = 160;
283  map<string, int32> field_map_string_int32_161 = 161;
284  map<string, int64> field_map_string_int64_162 = 162;
285  map<string, Proto3Message> field_map_string_message_163 = 163;
286  map<string, sfixed32> field_map_string_sfixed32_164 = 164;
287  map<string, sfixed64> field_map_string_sfixed64_165 = 165;
288  map<string, sint32> field_map_string_sint32_166 = 166;
289  map<string, sint64> field_map_string_sint64_167 = 167;
290  map<string, string> field_map_string_string_168 = 168;
291  map<string, uint32> field_map_string_uint32_169 = 169;
292  map<string, uint64> field_map_string_uint64_170 = 170;
293  map<uint32, bool> field_map_uint32_bool_171 = 171;
294  map<uint32, bytes> field_map_uint32_bytes_172 = 172;
295  map<uint32, double> field_map_uint32_double_173 = 173;
296  map<uint32, Proto3Message.TestEnum> field_map_uint32_enum_174 = 174;
297  map<uint32, fixed32> field_map_uint32_fixed32_175 = 175;
298  map<uint32, fixed64> field_map_uint32_fixed64_176 = 176;
299  map<uint32, float> field_map_uint32_float_177 = 177;
300  map<uint32, int32> field_map_uint32_int32_178 = 178;
301  map<uint32, int64> field_map_uint32_int64_179 = 179;
302  map<uint32, Proto3Message> field_map_uint32_message_180 = 180;
303  map<uint32, sfixed32> field_map_uint32_sfixed32_181 = 181;
304  map<uint32, sfixed64> field_map_uint32_sfixed64_182 = 182;
305  map<uint32, sint32> field_map_uint32_sint32_183 = 183;
306  map<uint32, sint64> field_map_uint32_sint64_184 = 184;
307  map<uint32, string> field_map_uint32_string_185 = 185;
308  map<uint32, uint32> field_map_uint32_uint32_186 = 186;
309  map<uint32, uint64> field_map_uint32_uint64_187 = 187;
310  map<uint64, bool> field_map_uint64_bool_188 = 188;
311  map<uint64, bytes> field_map_uint64_bytes_189 = 189;
312  map<uint64, double> field_map_uint64_double_190 = 190;
313  map<uint64, Proto3Message.TestEnum> field_map_uint64_enum_191 = 191;
314  map<uint64, fixed32> field_map_uint64_fixed32_192 = 192;
315  map<uint64, fixed64> field_map_uint64_fixed64_193 = 193;
316  map<uint64, float> field_map_uint64_float_194 = 194;
317  map<uint64, int32> field_map_uint64_int32_195 = 195;
318  map<uint64, int64> field_map_uint64_int64_196 = 196;
319  map<uint64, Proto3Message> field_map_uint64_message_197 = 197;
320  map<uint64, sfixed32> field_map_uint64_sfixed32_198 = 198;
321  map<uint64, sfixed64> field_map_uint64_sfixed64_199 = 199;
322  map<uint64, sint32> field_map_uint64_sint32_200 = 200;
323  map<uint64, sint64> field_map_uint64_sint64_201 = 201;
324  map<uint64, string> field_map_uint64_string_202 = 202;
325  map<uint64, uint32> field_map_uint64_uint32_203 = 203;
326  map<uint64, uint64> field_map_uint64_uint64_204 = 204;
327}
328