1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5syntax = "proto3";
6
7package google.golang.org.proto3_20160225;
8option go_package = "google.golang.org/protobuf/internal/testprotos/legacy/proto3_20160225_2fc053c5";
9
10enum SiblingEnum {
11	ALPHA   = 0;
12	BRAVO   = 10;
13	CHARLIE = 200;
14}
15
16message SiblingMessage {
17	string          f1 = 1;
18	repeated string f2 = 2;
19	Message         f3 = 3;
20}
21
22message Message {
23	enum ChildEnum {
24		ALPHA   = 0;
25		BRAVO   = 1;
26		CHARLIE = 2;
27	}
28	message ChildMessage {
29		string          f1 = 1;
30		repeated string f2 = 2;
31		Message         f3 = 3;
32	}
33
34	// Optional fields.
35	bool     optional_bool     = 100;
36	int32    optional_int32    = 101;
37	sint32   optional_sint32   = 102;
38	uint32   optional_uint32   = 103;
39	int64    optional_int64    = 104;
40	sint64   optional_sint64   = 105;
41	uint64   optional_uint64   = 106;
42	fixed32  optional_fixed32  = 107;
43	sfixed32 optional_sfixed32 = 108;
44	float    optional_float    = 109;
45	fixed64  optional_fixed64  = 110;
46	sfixed64 optional_sfixed64 = 111;
47	double   optional_double   = 112;
48	string   optional_string   = 113;
49	bytes    optional_bytes    = 114;
50
51	ChildEnum      optional_child_enum      = 115;
52	ChildMessage   optional_child_message   = 116;
53	SiblingEnum    optional_sibling_enum    = 117;
54	SiblingMessage optional_sibling_message = 118;
55
56	// Repeated fields.
57	repeated bool     repeated_bool     = 200;
58	repeated int32    repeated_int32    = 201;
59	repeated sint32   repeated_sint32   = 202;
60	repeated uint32   repeated_uint32   = 203;
61	repeated int64    repeated_int64    = 204;
62	repeated sint64   repeated_sint64   = 205;
63	repeated uint64   repeated_uint64   = 206;
64	repeated fixed32  repeated_fixed32  = 207;
65	repeated sfixed32 repeated_sfixed32 = 208;
66	repeated float    repeated_float    = 209;
67	repeated fixed64  repeated_fixed64  = 210;
68	repeated sfixed64 repeated_sfixed64 = 211;
69	repeated double   repeated_double   = 212;
70	repeated string   repeated_string   = 213;
71	repeated bytes    repeated_bytes    = 214;
72
73	repeated ChildEnum      repeated_child_enum      = 215;
74	repeated ChildMessage   repeated_child_message   = 216;
75	repeated SiblingEnum    repeated_sibling_enum    = 217;
76	repeated SiblingMessage repeated_sibling_message = 218;
77
78	// Map fields.
79	map<bool, bool>     map_bool_bool     = 300;
80	map<bool, int32>    map_bool_int32    = 301;
81	map<bool, sint32>   map_bool_sint32   = 302;
82	map<bool, uint32>   map_bool_uint32   = 303;
83	map<bool, int64>    map_bool_int64    = 304;
84	map<bool, sint64>   map_bool_sint64   = 305;
85	map<bool, uint64>   map_bool_uint64   = 306;
86	map<bool, fixed32>  map_bool_fixed32  = 307;
87	map<bool, sfixed32> map_bool_sfixed32 = 308;
88	map<bool, float>    map_bool_float    = 309;
89	map<bool, fixed64>  map_bool_fixed64  = 310;
90	map<bool, sfixed64> map_bool_sfixed64 = 311;
91	map<bool, double>   map_bool_double   = 312;
92	map<bool, string>   map_bool_string   = 313;
93	map<bool, bytes>    map_bool_bytes    = 314;
94
95	map<bool, ChildEnum>      map_bool_child_enum      = 315;
96	map<bool, ChildMessage>   map_bool_child_message   = 316;
97	map<bool, SiblingEnum>    map_bool_sibling_enum    = 317;
98	map<bool, SiblingMessage> map_bool_sibling_message = 318;
99
100	map<int32, bool>   map_int32_bool   = 319;
101	map<sint32, bool>  map_sint32_bool  = 320;
102	map<uint32, bool>  map_uint32_bool  = 321;
103	map<int64, bool>   map_int64_bool   = 322;
104	map<sint64, bool>  map_sint64_bool  = 323;
105	map<uint64, bool>  map_uint64_bool  = 324;
106	map<fixed32, bool> map_fixed32_bool = 325;
107	map<string, bool>  map_string_bool  = 326;
108
109	// Oneof fields.
110	oneof oneof_union {
111		bool     oneof_bool     = 400;
112		int32    oneof_int32    = 401;
113		sint32   oneof_sint32   = 402;
114		uint32   oneof_uint32   = 403;
115		int64    oneof_int64    = 404;
116		sint64   oneof_sint64   = 405;
117		uint64   oneof_uint64   = 406;
118		fixed32  oneof_fixed32  = 407;
119		sfixed32 oneof_sfixed32 = 408;
120		float    oneof_float    = 409;
121		fixed64  oneof_fixed64  = 410;
122		sfixed64 oneof_sfixed64 = 411;
123		double   oneof_double   = 412;
124		string   oneof_string   = 413;
125		bytes    oneof_bytes    = 414;
126
127		ChildEnum      oneof_child_enum      = 415;
128		ChildMessage   oneof_child_message   = 416;
129		SiblingEnum    oneof_sibling_enum    = 417;
130		SiblingMessage oneof_sibling_message = 418;
131
132		string oneof_string1 = 419;
133		string oneof_string2 = 420;
134		string oneof_string3 = 421;
135	}
136}
137