blob: 5156c1c66c3ce96f23a7bcccbf55802d83e58054 [file] [log] [blame]
// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
syntax = "proto2";
import "cmd/protoc-gen-go/testdata/extensions/base/base.proto";
import "cmd/protoc-gen-go/testdata/extensions/extra/extra.proto";
package goproto.protoc.extension.ext;
option go_package = "google.golang.org/protobuf/cmd/protoc-gen-go/testdata/extensions/ext";
message Message {
optional bytes data = 1;
message M {}
}
enum Enum {
ZERO = 0;
}
// Extend with various types.
extend goproto.protoc.extension.base.BaseMessage {
optional bool extension_bool = 101;
optional Enum extension_enum = 102;
optional int32 extension_int32 = 103;
optional sint32 extension_sint32 = 104;
optional uint32 extension_uint32 = 105;
optional int64 extension_int64 = 106;
optional sint64 extension_sint64 = 107;
optional uint64 extension_uint64 = 108;
optional sfixed32 extension_sfixed32 = 109;
optional fixed32 extension_fixed32 = 110;
optional float extension_float = 111;
optional sfixed64 extension_sfixed64 = 112;
optional fixed64 extension_fixed64 = 113;
optional double extension_double = 114;
optional string extension_string = 115;
optional bytes extension_bytes = 116;
optional Message extension_Message = 117;
optional Message.M extension_MessageM = 118;
optional group ExtensionGroup = 119 {
optional string extension_group = 120;
}
}
// Extend with a foreign message.
extend goproto.protoc.extension.base.BaseMessage {
optional goproto.protoc.extension.extra.ExtraMessage extra_message = 9;
}
// Extend in the scope of another type.
message ExtendingMessage {
extend goproto.protoc.extension.base.BaseMessage {
optional string extending_message_string = 200;
optional ExtendingMessageSubmessage extending_message_submessage = 201;
}
message ExtendingMessageSubmessage {}
}
// Extend with repeated fields.
extend goproto.protoc.extension.base.BaseMessage {
repeated bool repeated_x_bool = 301;
repeated Enum repeated_x_enum = 302;
repeated int32 repeated_x_int32 = 303;
repeated sint32 repeated_x_sint32 = 304;
repeated uint32 repeated_x_uint32 = 305;
repeated int64 repeated_x_int64 = 306;
repeated sint64 repeated_x_sint64 = 307;
repeated uint64 repeated_x_uint64 = 308;
repeated sfixed32 repeated_x_sfixed32 = 309;
repeated fixed32 repeated_x_fixed32 = 310;
repeated float repeated_x_float = 311;
repeated sfixed64 repeated_x_sfixed64 = 312;
repeated fixed64 repeated_x_fixed64 = 313;
repeated double repeated_x_double = 314;
repeated string repeated_x_string = 315;
repeated bytes repeated_x_bytes = 316;
repeated Message repeated_x_Message = 317;
repeated group RepeatedGroup = 318 {
repeated string repeated_x_group = 319;
}
}
// An extension of an extension.
message Extendable {
extensions 1 to max;
}
extend goproto.protoc.extension.base.BaseMessage {
optional Extendable extendable_field = 400;
}
extend Extendable {
optional string extendable_string_field = 1;
}
// Message set wire format.
message MessageSetWireFormatExtension {
extend goproto.protoc.extension.base.MessageSetWireFormatMessage {
optional MessageSetWireFormatExtension message_set_extension = 100;
}
}
// Message set extension, not nested in a message.
extend goproto.protoc.extension.base.MessageSetWireFormatMessage {
optional MessageSetWireFormatExtension message_set_extension = 101;
}