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 "testdata/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 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 71message Nested { 72 string bunny = 1; 73 bool cute = 2; 74} 75 76message MessageWithMap { 77 map<bool, bytes> byte_mapping = 1; 78} 79 80 81message IntMap { 82 map<int32, int32> rtt = 1; 83} 84 85message IntMaps { 86 repeated IntMap maps = 1; 87} 88