1// Protocol Buffers - Google's data interchange format 2// Copyright 2008 Google Inc. All rights reserved. 3// 4// Use of this source code is governed by a BSD-style 5// license that can be found in the LICENSE file or at 6// https://developers.google.com/open-source/licenses/bsd 7 8syntax = "proto2"; 9 10package objc.protobuf.tests.mset; 11 12option objc_class_prefix = "MSet"; 13 14// A message with message_set_wire_format. 15message Message { 16 option message_set_wire_format = true; 17 18 extensions 4 to max; 19} 20 21message MessageExtension1 { 22 extend Message { 23 optional MessageExtension1 message_set_extension = 1545008; 24 } 25 optional int32 i = 15; 26 optional Message recursive = 16; 27 optional string test_aliasing = 17 [ctype = STRING_PIECE]; 28} 29 30message MessageExtension2 { 31 extend Message { 32 optional MessageExtension2 message_set_extension = 1547769; 33 } 34 optional string str = 25; 35} 36 37// MessageSet wire format is equivalent to this. 38message RawMessageSet { 39 repeated group Item = 1 { 40 required int32 type_id = 2; 41 required bytes message = 3; 42 } 43} 44 45// MessageSet wire format is equivalent to this but since the fields 46// are repeated they can be left off or over present to testing. 47message RawBreakableMessageSet { 48 repeated group Item = 1 { 49 repeated int32 type_id = 2; 50 repeated bytes message = 3; 51 } 52} 53