1syntax = "proto2";
2
3option go_package = "github.com/jhump/protoreflect/internal/testprotos";
4
5package testprotos;
6
7// Comment for TestMessage
8message TestMessage {
9  // Comment for NestedMessage
10  message NestedMessage {
11    // Comment for AnotherNestedMessage
12    message AnotherNestedMessage {
13      // Comment for AnotherTestMessage extensions (1)
14      extend AnotherTestMessage {
15        // Comment for flags
16        repeated bool flags = 200 [packed = true];
17      }
18
19      // Comment for YetAnotherNestedMessage
20      message YetAnotherNestedMessage {
21        // Comment for DeeplyNestedEnum
22        enum DeeplyNestedEnum {
23          // Comment for VALUE1
24          VALUE1 = 1;
25
26          // Comment for VALUE2
27          VALUE2 = 2;
28        }
29
30        // Comment for foo
31        optional string foo = 1;
32
33        // Comment for bar
34        optional int32 bar = 2;
35
36        // Comment for baz
37        optional bytes baz = 3;
38
39        // Comment for dne
40        optional DeeplyNestedEnum dne = 4;
41
42        // Comment for anm
43        optional AnotherNestedMessage anm = 5;
44
45        // Comment for nm
46        optional NestedMessage nm = 6;
47
48        // Comment for tm
49        optional TestMessage tm = 7;
50      }
51
52      // Comment for yanm
53      repeated YetAnotherNestedMessage yanm = 1;
54    }
55
56    // Comment for anm
57    optional AnotherNestedMessage anm = 1;
58
59    // Comment for yanm
60    optional AnotherNestedMessage.YetAnotherNestedMessage yanm = 2;
61  }
62
63  // Comment for NestedEnum
64  enum NestedEnum {
65    // Comment for VALUE1
66    VALUE1 = 1;
67
68    // Comment for VALUE2
69    VALUE2 = 2;
70  }
71
72  // Comment for nm
73  optional NestedMessage nm = 1;
74
75  // Comment for anm
76  optional NestedMessage.AnotherNestedMessage anm = 2;
77
78  // Comment for yanm
79  optional NestedMessage.AnotherNestedMessage.YetAnotherNestedMessage yanm = 3;
80
81  // Comment for ne
82  repeated NestedEnum ne = 4;
83}
84
85// Comment for AnotherTestMessage
86message AnotherTestMessage {
87  // Comment for dne
88  optional TestMessage.NestedMessage.AnotherNestedMessage.YetAnotherNestedMessage.DeeplyNestedEnum dne = 1;
89
90  // Comment for map_field1
91  map<int32, string> map_field1 = 2;
92
93  // Comment for map_field2
94  map<int64, float> map_field2 = 3;
95
96  // Comment for map_field3
97  map<uint32, bool> map_field3 = 4;
98
99  // Comment for map_field4
100  map<string, AnotherTestMessage> map_field4 = 5;
101
102  // Comment for RockNRoll
103  optional group RockNRoll = 6 {
104    // Comment for beatles
105    optional string beatles = 1;
106
107    // Comment for stones
108    optional string stones = 2;
109
110    // Comment for doors
111    optional string doors = 3;
112  }
113
114  // Comment for atmoo
115  oneof atmoo {
116    // Comment for str
117    string str = 7;
118
119    // Comment for int
120    int64 int = 8;
121  }
122
123  // Comment for WithOptions
124  optional group WithOptions = 9 [deprecated = true] {
125  }
126
127  extensions 100 to 200;
128}
129
130// Comment for AnotherTestMessage extensions (2)
131extend AnotherTestMessage {
132  // Comment for xtm
133  optional TestMessage xtm = 100;
134
135  // Comment for xs
136  optional string xs = 101;
137}
138
139// Comment for AnotherTestMessage extensions (3)
140extend AnotherTestMessage {
141  // Comment for xi
142  optional int32 xi = 102;
143
144  // Comment for xui
145  optional uint64 xui = 103;
146}
147