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 32syntax = "proto3"; 33 34import "google/protobuf/any.proto"; 35import "test_proto/test.proto"; 36 37package proto3_proto; 38 39message 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 test_proto.SubDefaults proto2_field = 11; 62 map<string, test_proto.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 map<string, string> string_map = 20; 71} 72 73message Nested { 74 string bunny = 1; 75 bool cute = 2; 76} 77 78message MessageWithMap { 79 map<bool, bytes> byte_mapping = 1; 80} 81 82 83message IntMap { 84 map<int32, int32> rtt = 1; 85} 86 87message IntMaps { 88 repeated IntMap maps = 1; 89} 90 91message TestUTF8 { 92 string scalar = 1; 93 repeated string vector = 2; 94 oneof oneof { string field = 3; } 95 map<string, int64> map_key = 4; 96 map<int64, string> map_value = 5; 97} 98