1// Go support for Protocol Buffers - Google's data interchange format
2//
3// Copyright 2018 The Go Authors.  All rights reserved.
4// https://github.com/golang/protobuf
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
32syntax = "proto2";
33
34package goproto.test.import_public.sub;
35
36option go_package = "github.com/golang/protobuf/protoc-gen-go/testdata/import_public/sub";
37
38import "import_public/sub/b.proto";
39
40message M {
41  // Field using a type in the same Go package, but a different source file.
42  optional M2 m2 = 1;
43
44  oneof oneof_field {
45    int32 oneof_int32 = 2;
46    int64 oneof_int64 = 3;
47  }
48
49  optional group Grouping = 4  {
50    optional string group_field = 5;
51  }
52
53  optional string default_field = 6 [default="def"];
54
55  message Submessage {
56    enum Submessage_Subenum {
57      M_SUBMESSAGE_ZERO = 0;
58    }
59
60    oneof submessage_oneof_field {
61      int32 submessage_oneof_int32 = 1;
62      int64 submessage_oneof_int64 = 2;
63    }
64  }
65
66  enum Subenum {
67    M_ZERO = 0;
68  }
69}
70
71enum E {
72  ZERO = 0;
73}
74
75extend M2 {
76  optional string extension_field = 1;
77}
78