1 // Go support for Protocol Buffers - Google's data interchange format 2 // 3 // Copyright 2014 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 32 syntax = "proto3"; 33 34 import "google/protobuf/any.proto"; 35 import "testdata/test.proto"; 36 37 package proto3_proto; 38 39 message Message { 40 enum Humour { 41 UNKNOWN = 0; 42 PUNS = 1; 43 SLAPSTICK = 2; 44 BILL_BAILEY = 3; 45 } 46 47 string name = 1; 48 Humour hilarity = 2; 49 uint32 height_in_cm = 3; 50 bytes data = 4; 51 int64 result_count = 7; 52 bool true_scotsman = 8; 53 float score = 9; 54 55 repeated uint64 key = 5; 56 repeated int32 short_key = 19; 57 Nested nested = 6; 58 repeated Humour r_funny = 16; 59 60 map<string, Nested> terrain = 10; 61 testdata.SubDefaults proto2_field = 11; 62 map<string, testdata.SubDefaults> proto2_value = 13; 63 64 google.protobuf.Any anything = 14; 65 repeated google.protobuf.Any many_things = 15; 66 67 Message submessage = 17; 68 repeated Message children = 18; 69 } 70 71 message Nested { 72 string bunny = 1; 73 bool cute = 2; 74 } 75 76 message MessageWithMap { 77 map<bool, bytes> byte_mapping = 1; 78 } 79 80 81 message IntMap { 82 map<int32, int32> rtt = 1; 83 } 84 85 message IntMaps { 86 repeated IntMap maps = 1; 87 } 88