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 8// Author: kenton@google.com (Kenton Varda) 9// Based on original Protocol Buffers design by 10// Sanjay Ghemawat, Jeff Dean, and others. 11// 12// This file is similar to unittest_mset_wire_format.proto, but does not 13// have a TestMessageSet, so it can be downgraded to proto1. 14 15syntax = "proto2"; 16 17import "google/protobuf/unittest_mset_wire_format.proto"; 18 19package protobuf_unittest; 20 21option cc_enable_arenas = true; 22option optimize_for = SPEED; 23 24message TestMessageSetContainer { 25 optional proto2_wireformat_unittest.TestMessageSet message_set = 1; 26} 27 28message NestedTestMessageSetContainer { 29 optional TestMessageSetContainer container = 1; 30 optional NestedTestMessageSetContainer child = 2; 31 optional NestedTestMessageSetContainer lazy_child = 3 [lazy = true]; 32} 33 34message NestedTestInt { 35 optional fixed32 a = 1; 36 optional int32 b = 3; 37 optional NestedTestInt child = 2; 38} 39 40message TestMessageSetExtension1 { 41 extend proto2_wireformat_unittest.TestMessageSet { 42 optional TestMessageSetExtension1 message_set_extension = 1545008; 43 } 44 optional int32 i = 15; 45 optional proto2_wireformat_unittest.TestMessageSet recursive = 16; 46 optional string test_aliasing = 17 [ctype = STRING_PIECE]; 47} 48 49message TestMessageSetExtension2 { 50 extend proto2_wireformat_unittest.TestMessageSet { 51 optional TestMessageSetExtension2 message_set_extension = 1547769; 52 } 53 optional string str = 25; 54} 55 56message TestMessageSetExtension3 { 57 extend proto2_wireformat_unittest.TestMessageSet { 58 optional TestMessageSetExtension3 message_set_extension = 195273129; 59 } 60 optional NestedTestInt msg = 35; 61 required int32 required_int = 36; 62} 63 64// This message was used to generate 65// //net/proto2/python/internal/testdata/message_set_message, but is commented 66// out since it must not actually exist in code, to simulate an "unknown" 67// extension. 68// message TestMessageSetUnknownExtension { 69// extend TestMessageSet { 70// optional TestMessageSetUnknownExtension message_set_extension = 56141421; 71// } 72// optional int64 a = 1; 73// } 74 75// MessageSet wire format is equivalent to this. 76message RawMessageSet { 77 repeated group Item = 1 { 78 required int32 type_id = 2; 79 required bytes message = 3; 80 } 81} 82