blob: 9f3c75f3b930a62e55dccc05c3015ea46376bef1 [file] [log] [blame]
Rob Pikeaaa3a622010-03-20 22:32:34 -07001// Go support for Protocol Buffers - Google's data interchange format
2//
3// Copyright 2010 Google Inc. All rights reserved.
4// http://code.google.com/p/goprotobuf/
5//
6// Redistribution and use in source and binary forms, with or without
7// modification, are permitted provided that the following conditions are
8// met:
9//
10// * Redistributions of source code must retain the above copyright
11// notice, this list of conditions and the following disclaimer.
12// * Redistributions in binary form must reproduce the above
13// copyright notice, this list of conditions and the following disclaimer
14// in the documentation and/or other materials provided with the
15// distribution.
16// * Neither the name of Google Inc. nor the names of its
17// contributors may be used to endorse or promote products derived from
18// this software without specific prior written permission.
19//
20// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
32package my.test; // dotted package name
33
34import "imp.proto";
David Symondsf90e3382010-05-05 10:53:44 +100035import "multi1.proto"; // unused import
Rob Pikeaaa3a622010-03-20 22:32:34 -070036
37enum HatType {
38 // deliberately skipping 0
39 FEDORA = 1;
40 FEZ = 2;
41}
42
43enum Days {
44 MONDAY = 1;
45 TUESDAY = 2;
46 LUNDI = 1; // same value as MONDAY
47}
48
49message Request {
50 enum Color {
51 RED = 0;
52 GREEN = 1;
53 BLUE = 2;
54 }
55 repeated int64 key = 1;
56 optional imp.ImportedMessage imported_message = 2;
57 optional Color hue = 3;
58 optional HatType hat = 4 [default=FEDORA];
59 optional imp.ImportedMessage.Owner owner = 6;
60}
61
62message Reply {
63 message Entry {
64 required int64 key_that_needs_1234camel_CasIng = 1;
65 optional int64 value = 2 [default=7];
66 optional int64 _my_field_name_2 = 3;
David Symonds5256cf62010-06-27 10:33:42 +100067 enum Game {
68 FOOTBALL = 1;
69 TENNIS = 2;
70 }
Rob Pikeaaa3a622010-03-20 22:32:34 -070071 }
72 repeated Entry found = 1;
73 extensions 100 to max;
74}
75
76message ReplyExtensions {
77 extend Reply {
78 optional double time = 101;
79 }
80}
David Symondsc37ad662010-04-07 09:25:13 +100081
82// top-level extension
83extend Reply {
84 optional string tag = 103;
85}