xref: /aosp_15_r20/external/golang-protobuf/internal/testprotos/textpb3/test.proto (revision 1c12ee1efe575feb122dbf939ff15148a3b3e8f2)
1*1c12ee1eSDan Willemsen// Copyright 2018 The Go Authors. All rights reserved.
2*1c12ee1eSDan Willemsen// Use of this source code is governed by a BSD-style
3*1c12ee1eSDan Willemsen// license that can be found in the LICENSE file.
4*1c12ee1eSDan Willemsen
5*1c12ee1eSDan Willemsen// Test Protobuf definitions with proto3 syntax.
6*1c12ee1eSDan Willemsensyntax = "proto3";
7*1c12ee1eSDan Willemsen
8*1c12ee1eSDan Willemsenpackage pb3;
9*1c12ee1eSDan Willemsenoption go_package = "google.golang.org/protobuf/internal/testprotos/textpb3";
10*1c12ee1eSDan Willemsen
11*1c12ee1eSDan Willemsen// Scalars contains scalar field types.
12*1c12ee1eSDan Willemsenmessage Scalars {
13*1c12ee1eSDan Willemsen  bool s_bool = 1;
14*1c12ee1eSDan Willemsen  int32 s_int32 = 2;
15*1c12ee1eSDan Willemsen  int64 s_int64 = 3;
16*1c12ee1eSDan Willemsen  uint32 s_uint32 = 4;
17*1c12ee1eSDan Willemsen  uint64 s_uint64 = 5;
18*1c12ee1eSDan Willemsen  sint32 s_sint32 = 6;
19*1c12ee1eSDan Willemsen  sint64 s_sint64 = 7;
20*1c12ee1eSDan Willemsen  fixed32 s_fixed32 = 8;
21*1c12ee1eSDan Willemsen  fixed64 s_fixed64 = 9;
22*1c12ee1eSDan Willemsen  sfixed32 s_sfixed32 = 10;
23*1c12ee1eSDan Willemsen  sfixed64 s_sfixed64 = 11;
24*1c12ee1eSDan Willemsen
25*1c12ee1eSDan Willemsen  // Textproto marshal outputs fields in the same order as this proto
26*1c12ee1eSDan Willemsen  // definition regardless of field number. Following fields are intended to
27*1c12ee1eSDan Willemsen  // test that assumption.
28*1c12ee1eSDan Willemsen
29*1c12ee1eSDan Willemsen  float s_float = 20;
30*1c12ee1eSDan Willemsen  double s_double = 21;
31*1c12ee1eSDan Willemsen
32*1c12ee1eSDan Willemsen  bytes s_bytes = 14;
33*1c12ee1eSDan Willemsen  string s_string = 13;
34*1c12ee1eSDan Willemsen}
35*1c12ee1eSDan Willemsen
36*1c12ee1eSDan Willemsen// Message contains repeated fields.
37*1c12ee1eSDan Willemsenmessage Repeats {
38*1c12ee1eSDan Willemsen  repeated bool rpt_bool = 1;
39*1c12ee1eSDan Willemsen  repeated int32 rpt_int32 = 2;
40*1c12ee1eSDan Willemsen  repeated int64 rpt_int64 = 3;
41*1c12ee1eSDan Willemsen  repeated uint32 rpt_uint32 = 4;
42*1c12ee1eSDan Willemsen  repeated uint64 rpt_uint64 = 5;
43*1c12ee1eSDan Willemsen  repeated float rpt_float = 6;
44*1c12ee1eSDan Willemsen  repeated double rpt_double = 7;
45*1c12ee1eSDan Willemsen  repeated string rpt_string = 8;
46*1c12ee1eSDan Willemsen  repeated bytes rpt_bytes = 9;
47*1c12ee1eSDan Willemsen}
48*1c12ee1eSDan Willemsen
49*1c12ee1eSDan Willemsenmessage Proto3Optional {
50*1c12ee1eSDan Willemsen  optional bool opt_bool = 1;
51*1c12ee1eSDan Willemsen  optional int32 opt_int32 = 2;
52*1c12ee1eSDan Willemsen  optional int64 opt_int64 = 3;
53*1c12ee1eSDan Willemsen  optional uint32 opt_uint32 = 4;
54*1c12ee1eSDan Willemsen  optional uint64 opt_uint64 = 5;
55*1c12ee1eSDan Willemsen  optional float opt_float = 6;
56*1c12ee1eSDan Willemsen  optional double opt_double = 7;
57*1c12ee1eSDan Willemsen  optional string opt_string = 8;
58*1c12ee1eSDan Willemsen  optional bytes opt_bytes = 9;
59*1c12ee1eSDan Willemsen  optional Enum opt_enum = 10;
60*1c12ee1eSDan Willemsen  optional Nested opt_message = 11;
61*1c12ee1eSDan Willemsen}
62*1c12ee1eSDan Willemsen
63*1c12ee1eSDan Willemsenenum Enum {
64*1c12ee1eSDan Willemsen  ZERO = 0;
65*1c12ee1eSDan Willemsen  ONE = 1;
66*1c12ee1eSDan Willemsen  TWO = 2;
67*1c12ee1eSDan Willemsen  TEN = 10;
68*1c12ee1eSDan Willemsen}
69*1c12ee1eSDan Willemsen
70*1c12ee1eSDan Willemsen// Message contains enum fields.
71*1c12ee1eSDan Willemsenmessage Enums {
72*1c12ee1eSDan Willemsen  Enum s_enum = 1;
73*1c12ee1eSDan Willemsen
74*1c12ee1eSDan Willemsen  enum NestedEnum {
75*1c12ee1eSDan Willemsen  	CERO = 0;
76*1c12ee1eSDan Willemsen	UNO = 1;
77*1c12ee1eSDan Willemsen	DOS = 2;
78*1c12ee1eSDan Willemsen	DIEZ = 10;
79*1c12ee1eSDan Willemsen  }
80*1c12ee1eSDan Willemsen  NestedEnum s_nested_enum = 3;
81*1c12ee1eSDan Willemsen}
82*1c12ee1eSDan Willemsen
83*1c12ee1eSDan Willemsen// Message contains nested message field.
84*1c12ee1eSDan Willemsenmessage Nests {
85*1c12ee1eSDan Willemsen  Nested s_nested = 2;
86*1c12ee1eSDan Willemsen}
87*1c12ee1eSDan Willemsen
88*1c12ee1eSDan Willemsen// Message type used as submessage.
89*1c12ee1eSDan Willemsenmessage Nested {
90*1c12ee1eSDan Willemsen  string s_string = 1;
91*1c12ee1eSDan Willemsen  Nested s_nested = 2;
92*1c12ee1eSDan Willemsen}
93*1c12ee1eSDan Willemsen
94*1c12ee1eSDan Willemsen// Message contains oneof field.
95*1c12ee1eSDan Willemsenmessage Oneofs {
96*1c12ee1eSDan Willemsen  oneof union {
97*1c12ee1eSDan Willemsen    Enum oneof_enum = 1;
98*1c12ee1eSDan Willemsen    string oneof_string = 2;
99*1c12ee1eSDan Willemsen    Nested oneof_nested = 3;
100*1c12ee1eSDan Willemsen  }
101*1c12ee1eSDan Willemsen}
102*1c12ee1eSDan Willemsen
103*1c12ee1eSDan Willemsen// Message contains map fields.
104*1c12ee1eSDan Willemsenmessage Maps {
105*1c12ee1eSDan Willemsen  map<int32, string> int32_to_str = 1;
106*1c12ee1eSDan Willemsen  map<bool, uint32> bool_to_uint32 = 2;
107*1c12ee1eSDan Willemsen  map<uint64, Enum> uint64_to_enum = 3;
108*1c12ee1eSDan Willemsen  map<string, Nested> str_to_nested = 4;
109*1c12ee1eSDan Willemsen  map<string, Oneofs> str_to_oneofs = 5;
110*1c12ee1eSDan Willemsen}
111*1c12ee1eSDan Willemsen
112*1c12ee1eSDan Willemsen// Message for testing json_name option.
113*1c12ee1eSDan Willemsenmessage JSONNames {
114*1c12ee1eSDan Willemsen  string s_string = 1 [json_name = "foo_bar"];
115*1c12ee1eSDan Willemsen}
116