encoding/text: marshal extensions
Change-Id: Ic4a0c5909fb6eca76d22053b143be58c60b67b34
Reviewed-on: https://go-review.googlesource.com/c/154657
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
diff --git a/encoding/textpb/encode.go b/encoding/textpb/encode.go
index 8d4b9cb..c0b04b6 100644
--- a/encoding/textpb/encode.go
+++ b/encoding/textpb/encode.go
@@ -79,49 +79,66 @@
tname := text.ValueOf(fd.Name())
pval := knownFields.Get(num)
-
- if fd.Cardinality() == pref.Repeated {
- // Map or repeated fields.
- var items []text.Value
- var err error
- if fd.IsMap() {
- items, err = o.marshalMap(pval.Map(), fd)
- if !nerr.Merge(err) {
- return text.Value{}, err
- }
- } else {
- items, err = o.marshalList(pval.List(), fd)
- if !nerr.Merge(err) {
- return text.Value{}, err
- }
- }
-
- // Add each item as key: value field.
- for _, item := range items {
- msgFields = append(msgFields, [2]text.Value{tname, item})
- }
- } else {
- // Required or optional fields.
- tval, err := o.marshalSingular(pval, fd)
- if !nerr.Merge(err) {
- return text.Value{}, err
- }
- msgFields = append(msgFields, [2]text.Value{tname, tval})
+ var err error
+ msgFields, err = o.appendField(msgFields, tname, pval, fd)
+ if !nerr.Merge(err) {
+ return text.Value{}, err
}
}
- // Marshal out unknown fields.
+ // Handle extensions.
+ var err error
+ msgFields, err = o.appendExtensions(msgFields, knownFields)
+ if !nerr.Merge(err) {
+ return text.Value{}, err
+ }
+
+ // Handle unknown fields.
// TODO: Provide option to exclude or include unknown fields.
m.UnknownFields().Range(func(_ pref.FieldNumber, raw pref.RawFields) bool {
msgFields = appendUnknown(msgFields, raw)
return true
})
- // TODO: Handle extensions and Any expansion.
-
return text.ValueOf(msgFields), nerr.E
}
+// appendField marshals a protoreflect.Value and appends it to the given [][2]text.Value.
+func (o MarshalOptions) appendField(msgFields [][2]text.Value, tname text.Value, pval pref.Value, fd pref.FieldDescriptor) ([][2]text.Value, error) {
+ var nerr errors.NonFatal
+
+ if fd.Cardinality() == pref.Repeated {
+ // Map or repeated fields.
+ var items []text.Value
+ var err error
+ if fd.IsMap() {
+ items, err = o.marshalMap(pval.Map(), fd)
+ if !nerr.Merge(err) {
+ return msgFields, err
+ }
+ } else {
+ items, err = o.marshalList(pval.List(), fd)
+ if !nerr.Merge(err) {
+ return msgFields, err
+ }
+ }
+
+ // Add each item as key: value field.
+ for _, item := range items {
+ msgFields = append(msgFields, [2]text.Value{tname, item})
+ }
+ } else {
+ // Required or optional fields.
+ tval, err := o.marshalSingular(pval, fd)
+ if !nerr.Merge(err) {
+ return msgFields, err
+ }
+ msgFields = append(msgFields, [2]text.Value{tname, tval})
+ }
+
+ return msgFields, nerr.E
+}
+
// marshalSingular converts a non-repeated field value to text.Value.
// This includes all scalar types, enums, messages, and groups.
func (o MarshalOptions) marshalSingular(val pref.Value, fd pref.FieldDescriptor) (text.Value, error) {
@@ -252,6 +269,41 @@
sort.Slice(values, less)
}
+// appendExtensions marshals extension fields and appends them to the given [][2]text.Value.
+func (o MarshalOptions) appendExtensions(msgFields [][2]text.Value, knownFields pref.KnownFields) ([][2]text.Value, error) {
+ var nerr errors.NonFatal
+ xtTypes := knownFields.ExtensionTypes()
+ xtFields := make([][2]text.Value, 0, xtTypes.Len())
+
+ var err error
+ xtTypes.Range(func(xt pref.ExtensionType) bool {
+ // TODO: Handle MessageSet. Field name should be message_set_extension
+ // of message type without any fields and has message option
+ // message_set_wire_format=true.
+
+ num := xt.Number()
+ if knownFields.Has(num) {
+ // Use string type to produce [name] format.
+ tname := text.ValueOf(string(xt.FullName()))
+ pval := knownFields.Get(num)
+ xtFields, err = o.appendField(xtFields, tname, pval, xt)
+ if err != nil {
+ return false
+ }
+ }
+ return true
+ })
+ if !nerr.Merge(err) {
+ return msgFields, err
+ }
+
+ // Sort extensions lexicographically and append to output.
+ sort.SliceStable(xtFields, func(i, j int) bool {
+ return xtFields[i][0].String() < xtFields[j][0].String()
+ })
+ return append(msgFields, xtFields...), nerr.E
+}
+
// appendUnknown parses the given []byte and appends field(s) into the given fields slice.
// This function assumes proper encoding in the given []byte.
func appendUnknown(fields [][2]text.Value, b []byte) [][2]text.Value {
diff --git a/encoding/textpb/encode_test.go b/encoding/textpb/encode_test.go
index 55f3e77..8b7974e 100644
--- a/encoding/textpb/encode_test.go
+++ b/encoding/textpb/encode_test.go
@@ -9,9 +9,12 @@
"strings"
"testing"
+ "github.com/golang/protobuf/protoapi"
"github.com/golang/protobuf/v2/encoding/textpb"
"github.com/golang/protobuf/v2/internal/detrand"
"github.com/golang/protobuf/v2/internal/encoding/pack"
+ "github.com/golang/protobuf/v2/internal/encoding/wire"
+ "github.com/golang/protobuf/v2/internal/legacy"
"github.com/golang/protobuf/v2/internal/scalar"
"github.com/golang/protobuf/v2/proto"
"github.com/google/go-cmp/cmp"
@@ -47,6 +50,18 @@
return p
}
+func setExtension(m proto.Message, xd *protoapi.ExtensionDesc, val interface{}) {
+ xt := legacy.Export{}.ExtensionTypeFromDesc(xd)
+ knownFields := m.ProtoReflect().KnownFields()
+ extTypes := knownFields.ExtensionTypes()
+ extTypes.Register(xt)
+ if val == nil {
+ return
+ }
+ pval := xt.ValueOf(val)
+ knownFields.Set(wire.Number(xd.Field), pval)
+}
+
func TestMarshal(t *testing.T) {
tests := []struct {
desc string
@@ -794,6 +809,161 @@
102: "hello"
102: "世界"
`,
+ }, {
+ desc: "extensions of non-repeated fields",
+ input: func() proto.Message {
+ m := &pb2.Extensions{
+ OptString: scalar.String("non-extension field"),
+ OptBool: scalar.Bool(true),
+ OptInt32: scalar.Int32(42),
+ }
+ setExtension(m, pb2.E_OptExtBool, true)
+ setExtension(m, pb2.E_OptExtString, "extension field")
+ setExtension(m, pb2.E_OptExtEnum, pb2.Enum_TENTH)
+ setExtension(m, pb2.E_OptExtNested, &pb2.Nested{
+ OptString: scalar.String("nested in an extension"),
+ OptNested: &pb2.Nested{
+ OptString: scalar.String("another nested in an extension"),
+ },
+ })
+ return m
+ }(),
+ want: `opt_string: "non-extension field"
+opt_bool: true
+opt_int32: 42
+[pb2.opt_ext_bool]: true
+[pb2.opt_ext_enum]: TENTH
+[pb2.opt_ext_nested]: {
+ opt_string: "nested in an extension"
+ opt_nested: {
+ opt_string: "another nested in an extension"
+ }
+}
+[pb2.opt_ext_string]: "extension field"
+`,
+ }, {
+ desc: "registered extension but not set",
+ input: func() proto.Message {
+ m := &pb2.Extensions{}
+ setExtension(m, pb2.E_OptExtNested, nil)
+ return m
+ }(),
+ want: "\n",
+ }, {
+ desc: "extensions of repeated fields",
+ input: func() proto.Message {
+ m := &pb2.Extensions{}
+ setExtension(m, pb2.E_RptExtEnum, &[]pb2.Enum{pb2.Enum_TENTH, 101, pb2.Enum_FIRST})
+ setExtension(m, pb2.E_RptExtFixed32, &[]uint32{42, 47})
+ setExtension(m, pb2.E_RptExtNested, &[]*pb2.Nested{
+ &pb2.Nested{OptString: scalar.String("one")},
+ &pb2.Nested{OptString: scalar.String("two")},
+ &pb2.Nested{OptString: scalar.String("three")},
+ })
+ return m
+ }(),
+ want: `[pb2.rpt_ext_enum]: TENTH
+[pb2.rpt_ext_enum]: 101
+[pb2.rpt_ext_enum]: FIRST
+[pb2.rpt_ext_fixed32]: 42
+[pb2.rpt_ext_fixed32]: 47
+[pb2.rpt_ext_nested]: {
+ opt_string: "one"
+}
+[pb2.rpt_ext_nested]: {
+ opt_string: "two"
+}
+[pb2.rpt_ext_nested]: {
+ opt_string: "three"
+}
+`,
+ }, {
+ desc: "extensions of non-repeated fields in another message",
+ input: func() proto.Message {
+ m := &pb2.Extensions{}
+ setExtension(m, pb2.E_ExtensionsContainer_OptExtBool, true)
+ setExtension(m, pb2.E_ExtensionsContainer_OptExtString, "extension field")
+ setExtension(m, pb2.E_ExtensionsContainer_OptExtEnum, pb2.Enum_TENTH)
+ setExtension(m, pb2.E_ExtensionsContainer_OptExtNested, &pb2.Nested{
+ OptString: scalar.String("nested in an extension"),
+ OptNested: &pb2.Nested{
+ OptString: scalar.String("another nested in an extension"),
+ },
+ })
+ return m
+ }(),
+ want: `[pb2.ExtensionsContainer.opt_ext_bool]: true
+[pb2.ExtensionsContainer.opt_ext_enum]: TENTH
+[pb2.ExtensionsContainer.opt_ext_nested]: {
+ opt_string: "nested in an extension"
+ opt_nested: {
+ opt_string: "another nested in an extension"
+ }
+}
+[pb2.ExtensionsContainer.opt_ext_string]: "extension field"
+`,
+ }, {
+ desc: "extensions of repeated fields in another message",
+ input: func() proto.Message {
+ m := &pb2.Extensions{
+ OptString: scalar.String("non-extension field"),
+ OptBool: scalar.Bool(true),
+ OptInt32: scalar.Int32(42),
+ }
+ setExtension(m, pb2.E_ExtensionsContainer_RptExtEnum, &[]pb2.Enum{pb2.Enum_TENTH, 101, pb2.Enum_FIRST})
+ setExtension(m, pb2.E_ExtensionsContainer_RptExtString, &[]string{"hello", "world"})
+ setExtension(m, pb2.E_ExtensionsContainer_RptExtNested, &[]*pb2.Nested{
+ &pb2.Nested{OptString: scalar.String("one")},
+ &pb2.Nested{OptString: scalar.String("two")},
+ &pb2.Nested{OptString: scalar.String("three")},
+ })
+ return m
+ }(),
+ want: `opt_string: "non-extension field"
+opt_bool: true
+opt_int32: 42
+[pb2.ExtensionsContainer.rpt_ext_enum]: TENTH
+[pb2.ExtensionsContainer.rpt_ext_enum]: 101
+[pb2.ExtensionsContainer.rpt_ext_enum]: FIRST
+[pb2.ExtensionsContainer.rpt_ext_nested]: {
+ opt_string: "one"
+}
+[pb2.ExtensionsContainer.rpt_ext_nested]: {
+ opt_string: "two"
+}
+[pb2.ExtensionsContainer.rpt_ext_nested]: {
+ opt_string: "three"
+}
+[pb2.ExtensionsContainer.rpt_ext_string]: "hello"
+[pb2.ExtensionsContainer.rpt_ext_string]: "world"
+`,
+ /* TODO: test for MessageSet
+ }, {
+ desc: "MessageSet",
+ input: func() proto.Message {
+ m := &pb2.MessageSet{}
+ setExtension(m, pb2.E_MessageSetExtension_MessageSetExtension, &pb2.MessageSetExtension{
+ OptString: scalar.String("a messageset extension"),
+ })
+ setExtension(m, pb2.E_MessageSetExtension_NotMessageSetExtension, &pb2.MessageSetExtension{
+ OptString: scalar.String("not a messageset extension"),
+ })
+ setExtension(m, pb2.E_MessageSetExtension_ExtNested, &pb2.Nested{
+ OptString: scalar.String("just a regular extension"),
+ })
+ return m
+ }(),
+ want: `[pb2.MessageSetExtension]: {
+ opt_string: "a messageset extension"
+ }
+ [pb2.MessageSetExtension.ext_nested]: {
+ opt_string: "just a regular extension"
+ }
+ [pb2.MessageSetExtension.not_message_set_extension]: {
+ opt_string: "not a messageset extension"
+ }
+ `,
+ */
}}
for _, tt := range tests {
diff --git a/encoding/textpb/testprotos/pb2/test.pb.go b/encoding/textpb/testprotos/pb2/test.pb.go
index d731089..61388ba 100644
--- a/encoding/textpb/testprotos/pb2/test.pb.go
+++ b/encoding/textpb/testprotos/pb2/test.pb.go
@@ -1058,7 +1058,6 @@
return nil
}
-// Following messages are for testing required field nested in optional, repeated and map fields.
type NestedWithRequired struct {
ReqString *string `protobuf:"bytes,1,req,name=req_string,json=reqString" json:"req_string,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1189,6 +1188,252 @@
return nil
}
+type Extensions struct {
+ OptString *string `protobuf:"bytes,1,opt,name=opt_string,json=optString" json:"opt_string,omitempty"`
+ OptBool *bool `protobuf:"varint,101,opt,name=opt_bool,json=optBool" json:"opt_bool,omitempty"`
+ OptInt32 *int32 `protobuf:"varint,2,opt,name=opt_int32,json=optInt32" json:"opt_int32,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ proto.XXX_InternalExtensions `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+type xxx_Extensions struct{ m *Extensions }
+
+func (m *Extensions) ProtoReflect() protoreflect.Message {
+ return xxx_Extensions{m}
+}
+func (m xxx_Extensions) Type() protoreflect.MessageType {
+ return xxx_Test_ProtoFile_MessageTypes[11].Type
+}
+func (m xxx_Extensions) KnownFields() protoreflect.KnownFields {
+ return xxx_Test_ProtoFile_MessageTypes[11].KnownFieldsOf(m.m)
+}
+func (m xxx_Extensions) UnknownFields() protoreflect.UnknownFields {
+ return xxx_Test_ProtoFile_MessageTypes[11].UnknownFieldsOf(m.m)
+}
+func (m xxx_Extensions) Interface() protoreflect.ProtoMessage {
+ return m.m
+}
+
+func (m *Extensions) Reset() { *m = Extensions{} }
+func (m *Extensions) String() string { return proto.CompactTextString(m) }
+func (*Extensions) ProtoMessage() {}
+func (*Extensions) Descriptor() ([]byte, []int) {
+ return fileDescriptor_c8d7acc1bcec9a72, []int{11}
+}
+
+var extRange_Extensions = []proto.ExtensionRange{
+ {Start: 20, End: 100},
+}
+
+func (*Extensions) ExtensionRangeArray() []proto.ExtensionRange {
+ return extRange_Extensions
+}
+
+func (m *Extensions) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Extensions.Unmarshal(m, b)
+}
+func (m *Extensions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Extensions.Marshal(b, m, deterministic)
+}
+func (m *Extensions) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Extensions.Merge(m, src)
+}
+func (m *Extensions) XXX_Size() int {
+ return xxx_messageInfo_Extensions.Size(m)
+}
+func (m *Extensions) XXX_DiscardUnknown() {
+ xxx_messageInfo_Extensions.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Extensions proto.InternalMessageInfo
+
+func (m *Extensions) GetOptString() string {
+ if m != nil && m.OptString != nil {
+ return *m.OptString
+ }
+ return ""
+}
+
+func (m *Extensions) GetOptBool() bool {
+ if m != nil && m.OptBool != nil {
+ return *m.OptBool
+ }
+ return false
+}
+
+func (m *Extensions) GetOptInt32() int32 {
+ if m != nil && m.OptInt32 != nil {
+ return *m.OptInt32
+ }
+ return 0
+}
+
+type ExtensionsContainer struct {
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+type xxx_ExtensionsContainer struct{ m *ExtensionsContainer }
+
+func (m *ExtensionsContainer) ProtoReflect() protoreflect.Message {
+ return xxx_ExtensionsContainer{m}
+}
+func (m xxx_ExtensionsContainer) Type() protoreflect.MessageType {
+ return xxx_Test_ProtoFile_MessageTypes[12].Type
+}
+func (m xxx_ExtensionsContainer) KnownFields() protoreflect.KnownFields {
+ return xxx_Test_ProtoFile_MessageTypes[12].KnownFieldsOf(m.m)
+}
+func (m xxx_ExtensionsContainer) UnknownFields() protoreflect.UnknownFields {
+ return xxx_Test_ProtoFile_MessageTypes[12].UnknownFieldsOf(m.m)
+}
+func (m xxx_ExtensionsContainer) Interface() protoreflect.ProtoMessage {
+ return m.m
+}
+
+func (m *ExtensionsContainer) Reset() { *m = ExtensionsContainer{} }
+func (m *ExtensionsContainer) String() string { return proto.CompactTextString(m) }
+func (*ExtensionsContainer) ProtoMessage() {}
+func (*ExtensionsContainer) Descriptor() ([]byte, []int) {
+ return fileDescriptor_c8d7acc1bcec9a72, []int{12}
+}
+
+func (m *ExtensionsContainer) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ExtensionsContainer.Unmarshal(m, b)
+}
+func (m *ExtensionsContainer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ExtensionsContainer.Marshal(b, m, deterministic)
+}
+func (m *ExtensionsContainer) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ExtensionsContainer.Merge(m, src)
+}
+func (m *ExtensionsContainer) XXX_Size() int {
+ return xxx_messageInfo_ExtensionsContainer.Size(m)
+}
+func (m *ExtensionsContainer) XXX_DiscardUnknown() {
+ xxx_messageInfo_ExtensionsContainer.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ExtensionsContainer proto.InternalMessageInfo
+
+type MessageSet struct {
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ proto.XXX_InternalExtensions `protobuf_messageset:"1" json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+type xxx_MessageSet struct{ m *MessageSet }
+
+func (m *MessageSet) ProtoReflect() protoreflect.Message {
+ return xxx_MessageSet{m}
+}
+func (m xxx_MessageSet) Type() protoreflect.MessageType {
+ return xxx_Test_ProtoFile_MessageTypes[13].Type
+}
+func (m xxx_MessageSet) KnownFields() protoreflect.KnownFields {
+ return xxx_Test_ProtoFile_MessageTypes[13].KnownFieldsOf(m.m)
+}
+func (m xxx_MessageSet) UnknownFields() protoreflect.UnknownFields {
+ return xxx_Test_ProtoFile_MessageTypes[13].UnknownFieldsOf(m.m)
+}
+func (m xxx_MessageSet) Interface() protoreflect.ProtoMessage {
+ return m.m
+}
+
+func (m *MessageSet) Reset() { *m = MessageSet{} }
+func (m *MessageSet) String() string { return proto.CompactTextString(m) }
+func (*MessageSet) ProtoMessage() {}
+func (*MessageSet) Descriptor() ([]byte, []int) {
+ return fileDescriptor_c8d7acc1bcec9a72, []int{13}
+}
+
+var extRange_MessageSet = []proto.ExtensionRange{
+ {Start: 4, End: 2147483646},
+}
+
+func (*MessageSet) ExtensionRangeArray() []proto.ExtensionRange {
+ return extRange_MessageSet
+}
+
+func (m *MessageSet) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_MessageSet.Unmarshal(m, b)
+}
+func (m *MessageSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_MessageSet.Marshal(b, m, deterministic)
+}
+func (m *MessageSet) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MessageSet.Merge(m, src)
+}
+func (m *MessageSet) XXX_Size() int {
+ return xxx_messageInfo_MessageSet.Size(m)
+}
+func (m *MessageSet) XXX_DiscardUnknown() {
+ xxx_messageInfo_MessageSet.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MessageSet proto.InternalMessageInfo
+
+type MessageSetExtension struct {
+ OptString *string `protobuf:"bytes,1,opt,name=opt_string,json=optString" json:"opt_string,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+type xxx_MessageSetExtension struct{ m *MessageSetExtension }
+
+func (m *MessageSetExtension) ProtoReflect() protoreflect.Message {
+ return xxx_MessageSetExtension{m}
+}
+func (m xxx_MessageSetExtension) Type() protoreflect.MessageType {
+ return xxx_Test_ProtoFile_MessageTypes[14].Type
+}
+func (m xxx_MessageSetExtension) KnownFields() protoreflect.KnownFields {
+ return xxx_Test_ProtoFile_MessageTypes[14].KnownFieldsOf(m.m)
+}
+func (m xxx_MessageSetExtension) UnknownFields() protoreflect.UnknownFields {
+ return xxx_Test_ProtoFile_MessageTypes[14].UnknownFieldsOf(m.m)
+}
+func (m xxx_MessageSetExtension) Interface() protoreflect.ProtoMessage {
+ return m.m
+}
+
+func (m *MessageSetExtension) Reset() { *m = MessageSetExtension{} }
+func (m *MessageSetExtension) String() string { return proto.CompactTextString(m) }
+func (*MessageSetExtension) ProtoMessage() {}
+func (*MessageSetExtension) Descriptor() ([]byte, []int) {
+ return fileDescriptor_c8d7acc1bcec9a72, []int{14}
+}
+
+func (m *MessageSetExtension) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_MessageSetExtension.Unmarshal(m, b)
+}
+func (m *MessageSetExtension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_MessageSetExtension.Marshal(b, m, deterministic)
+}
+func (m *MessageSetExtension) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MessageSetExtension.Merge(m, src)
+}
+func (m *MessageSetExtension) XXX_Size() int {
+ return xxx_messageInfo_MessageSetExtension.Size(m)
+}
+func (m *MessageSetExtension) XXX_DiscardUnknown() {
+ xxx_messageInfo_MessageSetExtension.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MessageSetExtension proto.InternalMessageInfo
+
+func (m *MessageSetExtension) GetOptString() string {
+ if m != nil && m.OptString != nil {
+ return *m.OptString
+ }
+ return ""
+}
+
// Message contains well-known type fields.
type KnownTypes struct {
OptBool *wrappers.BoolValue `protobuf:"bytes,1,opt,name=opt_bool,json=optBool" json:"opt_bool,omitempty"`
@@ -1218,13 +1463,13 @@
return xxx_KnownTypes{m}
}
func (m xxx_KnownTypes) Type() protoreflect.MessageType {
- return xxx_Test_ProtoFile_MessageTypes[11].Type
+ return xxx_Test_ProtoFile_MessageTypes[15].Type
}
func (m xxx_KnownTypes) KnownFields() protoreflect.KnownFields {
- return xxx_Test_ProtoFile_MessageTypes[11].KnownFieldsOf(m.m)
+ return xxx_Test_ProtoFile_MessageTypes[15].KnownFieldsOf(m.m)
}
func (m xxx_KnownTypes) UnknownFields() protoreflect.UnknownFields {
- return xxx_Test_ProtoFile_MessageTypes[11].UnknownFieldsOf(m.m)
+ return xxx_Test_ProtoFile_MessageTypes[15].UnknownFieldsOf(m.m)
}
func (m xxx_KnownTypes) Interface() protoreflect.ProtoMessage {
return m.m
@@ -1234,7 +1479,7 @@
func (m *KnownTypes) String() string { return proto.CompactTextString(m) }
func (*KnownTypes) ProtoMessage() {}
func (*KnownTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_c8d7acc1bcec9a72, []int{11}
+ return fileDescriptor_c8d7acc1bcec9a72, []int{15}
}
func (m *KnownTypes) XXX_Unmarshal(b []byte) error {
@@ -1383,13 +1628,13 @@
return xxx_Nests_OptGroup{m}
}
func (m xxx_Nests_OptGroup) Type() protoreflect.MessageType {
- return xxx_Test_ProtoFile_MessageTypes[12].Type
+ return xxx_Test_ProtoFile_MessageTypes[16].Type
}
func (m xxx_Nests_OptGroup) KnownFields() protoreflect.KnownFields {
- return xxx_Test_ProtoFile_MessageTypes[12].KnownFieldsOf(m.m)
+ return xxx_Test_ProtoFile_MessageTypes[16].KnownFieldsOf(m.m)
}
func (m xxx_Nests_OptGroup) UnknownFields() protoreflect.UnknownFields {
- return xxx_Test_ProtoFile_MessageTypes[12].UnknownFieldsOf(m.m)
+ return xxx_Test_ProtoFile_MessageTypes[16].UnknownFieldsOf(m.m)
}
func (m xxx_Nests_OptGroup) Interface() protoreflect.ProtoMessage {
return m.m
@@ -1461,13 +1706,13 @@
return xxx_Nests_RptGroup{m}
}
func (m xxx_Nests_RptGroup) Type() protoreflect.MessageType {
- return xxx_Test_ProtoFile_MessageTypes[13].Type
+ return xxx_Test_ProtoFile_MessageTypes[17].Type
}
func (m xxx_Nests_RptGroup) KnownFields() protoreflect.KnownFields {
- return xxx_Test_ProtoFile_MessageTypes[13].KnownFieldsOf(m.m)
+ return xxx_Test_ProtoFile_MessageTypes[17].KnownFieldsOf(m.m)
}
func (m xxx_Nests_RptGroup) UnknownFields() protoreflect.UnknownFields {
- return xxx_Test_ProtoFile_MessageTypes[13].UnknownFieldsOf(m.m)
+ return xxx_Test_ProtoFile_MessageTypes[17].UnknownFieldsOf(m.m)
}
func (m xxx_Nests_RptGroup) Interface() protoreflect.ProtoMessage {
return m.m
@@ -1520,13 +1765,13 @@
return xxx_Nests_OptGroup_OptNestedGroup{m}
}
func (m xxx_Nests_OptGroup_OptNestedGroup) Type() protoreflect.MessageType {
- return xxx_Test_ProtoFile_MessageTypes[14].Type
+ return xxx_Test_ProtoFile_MessageTypes[18].Type
}
func (m xxx_Nests_OptGroup_OptNestedGroup) KnownFields() protoreflect.KnownFields {
- return xxx_Test_ProtoFile_MessageTypes[14].KnownFieldsOf(m.m)
+ return xxx_Test_ProtoFile_MessageTypes[18].KnownFieldsOf(m.m)
}
func (m xxx_Nests_OptGroup_OptNestedGroup) UnknownFields() protoreflect.UnknownFields {
- return xxx_Test_ProtoFile_MessageTypes[14].UnknownFieldsOf(m.m)
+ return xxx_Test_ProtoFile_MessageTypes[18].UnknownFieldsOf(m.m)
}
func (m xxx_Nests_OptGroup_OptNestedGroup) Interface() protoreflect.ProtoMessage {
return m.m
@@ -1564,6 +1809,159 @@
return Enum_UNKNOWN
}
+var E_OptExtBool = &proto.ExtensionDesc{
+ ExtendedType: (*Extensions)(nil),
+ ExtensionType: (*bool)(nil),
+ Field: 21,
+ Name: "pb2.opt_ext_bool",
+ Tag: "varint,21,opt,name=opt_ext_bool",
+ Filename: "encoding/textpb/testprotos/pb2/test.proto",
+}
+
+var E_OptExtString = &proto.ExtensionDesc{
+ ExtendedType: (*Extensions)(nil),
+ ExtensionType: (*string)(nil),
+ Field: 22,
+ Name: "pb2.opt_ext_string",
+ Tag: "bytes,22,opt,name=opt_ext_string",
+ Filename: "encoding/textpb/testprotos/pb2/test.proto",
+}
+
+var E_OptExtEnum = &proto.ExtensionDesc{
+ ExtendedType: (*Extensions)(nil),
+ ExtensionType: (*Enum)(nil),
+ Field: 23,
+ Name: "pb2.opt_ext_enum",
+ Tag: "varint,23,opt,name=opt_ext_enum,enum=pb2.Enum",
+ Filename: "encoding/textpb/testprotos/pb2/test.proto",
+}
+
+var E_OptExtNested = &proto.ExtensionDesc{
+ ExtendedType: (*Extensions)(nil),
+ ExtensionType: (*Nested)(nil),
+ Field: 24,
+ Name: "pb2.opt_ext_nested",
+ Tag: "bytes,24,opt,name=opt_ext_nested",
+ Filename: "encoding/textpb/testprotos/pb2/test.proto",
+}
+
+var E_RptExtFixed32 = &proto.ExtensionDesc{
+ ExtendedType: (*Extensions)(nil),
+ ExtensionType: ([]uint32)(nil),
+ Field: 31,
+ Name: "pb2.rpt_ext_fixed32",
+ Tag: "fixed32,31,rep,name=rpt_ext_fixed32",
+ Filename: "encoding/textpb/testprotos/pb2/test.proto",
+}
+
+var E_RptExtEnum = &proto.ExtensionDesc{
+ ExtendedType: (*Extensions)(nil),
+ ExtensionType: ([]Enum)(nil),
+ Field: 32,
+ Name: "pb2.rpt_ext_enum",
+ Tag: "varint,32,rep,name=rpt_ext_enum,enum=pb2.Enum",
+ Filename: "encoding/textpb/testprotos/pb2/test.proto",
+}
+
+var E_RptExtNested = &proto.ExtensionDesc{
+ ExtendedType: (*Extensions)(nil),
+ ExtensionType: ([]*Nested)(nil),
+ Field: 33,
+ Name: "pb2.rpt_ext_nested",
+ Tag: "bytes,33,rep,name=rpt_ext_nested",
+ Filename: "encoding/textpb/testprotos/pb2/test.proto",
+}
+
+var E_ExtensionsContainer_OptExtBool = &proto.ExtensionDesc{
+ ExtendedType: (*Extensions)(nil),
+ ExtensionType: (*bool)(nil),
+ Field: 51,
+ Name: "pb2.ExtensionsContainer.opt_ext_bool",
+ Tag: "varint,51,opt,name=opt_ext_bool",
+ Filename: "encoding/textpb/testprotos/pb2/test.proto",
+}
+
+var E_ExtensionsContainer_OptExtString = &proto.ExtensionDesc{
+ ExtendedType: (*Extensions)(nil),
+ ExtensionType: (*string)(nil),
+ Field: 52,
+ Name: "pb2.ExtensionsContainer.opt_ext_string",
+ Tag: "bytes,52,opt,name=opt_ext_string",
+ Filename: "encoding/textpb/testprotos/pb2/test.proto",
+}
+
+var E_ExtensionsContainer_OptExtEnum = &proto.ExtensionDesc{
+ ExtendedType: (*Extensions)(nil),
+ ExtensionType: (*Enum)(nil),
+ Field: 53,
+ Name: "pb2.ExtensionsContainer.opt_ext_enum",
+ Tag: "varint,53,opt,name=opt_ext_enum,enum=pb2.Enum",
+ Filename: "encoding/textpb/testprotos/pb2/test.proto",
+}
+
+var E_ExtensionsContainer_OptExtNested = &proto.ExtensionDesc{
+ ExtendedType: (*Extensions)(nil),
+ ExtensionType: (*Nested)(nil),
+ Field: 54,
+ Name: "pb2.ExtensionsContainer.opt_ext_nested",
+ Tag: "bytes,54,opt,name=opt_ext_nested",
+ Filename: "encoding/textpb/testprotos/pb2/test.proto",
+}
+
+var E_ExtensionsContainer_RptExtString = &proto.ExtensionDesc{
+ ExtendedType: (*Extensions)(nil),
+ ExtensionType: ([]string)(nil),
+ Field: 61,
+ Name: "pb2.ExtensionsContainer.rpt_ext_string",
+ Tag: "bytes,61,rep,name=rpt_ext_string",
+ Filename: "encoding/textpb/testprotos/pb2/test.proto",
+}
+
+var E_ExtensionsContainer_RptExtEnum = &proto.ExtensionDesc{
+ ExtendedType: (*Extensions)(nil),
+ ExtensionType: ([]Enum)(nil),
+ Field: 62,
+ Name: "pb2.ExtensionsContainer.rpt_ext_enum",
+ Tag: "varint,62,rep,name=rpt_ext_enum,enum=pb2.Enum",
+ Filename: "encoding/textpb/testprotos/pb2/test.proto",
+}
+
+var E_ExtensionsContainer_RptExtNested = &proto.ExtensionDesc{
+ ExtendedType: (*Extensions)(nil),
+ ExtensionType: ([]*Nested)(nil),
+ Field: 63,
+ Name: "pb2.ExtensionsContainer.rpt_ext_nested",
+ Tag: "bytes,63,rep,name=rpt_ext_nested",
+ Filename: "encoding/textpb/testprotos/pb2/test.proto",
+}
+
+var E_MessageSetExtension_MessageSetExtension = &proto.ExtensionDesc{
+ ExtendedType: (*MessageSet)(nil),
+ ExtensionType: (*MessageSetExtension)(nil),
+ Field: 10,
+ Name: "pb2.MessageSetExtension",
+ Tag: "bytes,10,opt,name=message_set_extension",
+ Filename: "encoding/textpb/testprotos/pb2/test.proto",
+}
+
+var E_MessageSetExtension_NotMessageSetExtension = &proto.ExtensionDesc{
+ ExtendedType: (*MessageSet)(nil),
+ ExtensionType: (*MessageSetExtension)(nil),
+ Field: 20,
+ Name: "pb2.MessageSetExtension.not_message_set_extension",
+ Tag: "bytes,20,opt,name=not_message_set_extension",
+ Filename: "encoding/textpb/testprotos/pb2/test.proto",
+}
+
+var E_MessageSetExtension_ExtNested = &proto.ExtensionDesc{
+ ExtendedType: (*MessageSet)(nil),
+ ExtensionType: (*Nested)(nil),
+ Field: 30,
+ Name: "pb2.MessageSetExtension.ext_nested",
+ Tag: "bytes,30,opt,name=ext_nested",
+ Filename: "encoding/textpb/testprotos/pb2/test.proto",
+}
+
func init() {
proto.RegisterFile("encoding/textpb/testprotos/pb2/test.proto", fileDescriptor_c8d7acc1bcec9a72)
proto.RegisterEnum("pb2.Enum", Enum_name, Enum_value)
@@ -1586,170 +1984,211 @@
proto.RegisterType((*NestedWithRequired)(nil), "pb2.NestedWithRequired")
proto.RegisterType((*IndirectRequired)(nil), "pb2.IndirectRequired")
proto.RegisterMapType((map[string]*NestedWithRequired)(nil), "pb2.IndirectRequired.StrToNestedEntry")
+ proto.RegisterType((*Extensions)(nil), "pb2.Extensions")
+ proto.RegisterType((*ExtensionsContainer)(nil), "pb2.ExtensionsContainer")
+ proto.RegisterType((*MessageSet)(nil), "pb2.MessageSet")
+ proto.RegisterType((*MessageSetExtension)(nil), "pb2.MessageSetExtension")
proto.RegisterType((*KnownTypes)(nil), "pb2.KnownTypes")
proto.RegisterType((*Nests_OptGroup)(nil), "pb2.Nests.OptGroup")
proto.RegisterType((*Nests_RptGroup)(nil), "pb2.Nests.RptGroup")
proto.RegisterType((*Nests_OptGroup_OptNestedGroup)(nil), "pb2.Nests.OptGroup.OptNestedGroup")
+ proto.RegisterExtension(E_OptExtBool)
+ proto.RegisterExtension(E_OptExtString)
+ proto.RegisterExtension(E_OptExtEnum)
+ proto.RegisterExtension(E_OptExtNested)
+ proto.RegisterExtension(E_RptExtFixed32)
+ proto.RegisterExtension(E_RptExtEnum)
+ proto.RegisterExtension(E_RptExtNested)
+ proto.RegisterExtension(E_ExtensionsContainer_OptExtBool)
+ proto.RegisterExtension(E_ExtensionsContainer_OptExtString)
+ proto.RegisterExtension(E_ExtensionsContainer_OptExtEnum)
+ proto.RegisterExtension(E_ExtensionsContainer_OptExtNested)
+ proto.RegisterExtension(E_ExtensionsContainer_RptExtString)
+ proto.RegisterExtension(E_ExtensionsContainer_RptExtEnum)
+ proto.RegisterExtension(E_ExtensionsContainer_RptExtNested)
+ proto.RegisterExtension(E_MessageSetExtension_MessageSetExtension)
+ proto.RegisterExtension(E_MessageSetExtension_NotMessageSetExtension)
+ proto.RegisterExtension(E_MessageSetExtension_ExtNested)
}
var fileDescriptor_c8d7acc1bcec9a72 = []byte{
- // 1629 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x58, 0xdd, 0x6e, 0xdb, 0x46,
- 0x16, 0x0e, 0x49, 0xfd, 0x8e, 0xfc, 0xa3, 0x30, 0xc9, 0xae, 0x2c, 0x27, 0x31, 0x23, 0x64, 0x17,
- 0xdc, 0x00, 0x91, 0x00, 0x59, 0x11, 0x8c, 0x75, 0x7e, 0x60, 0xaf, 0xed, 0xc4, 0xc9, 0xd6, 0x2e,
- 0x28, 0xb9, 0x01, 0x72, 0x63, 0x48, 0xd6, 0x58, 0x21, 0x2a, 0x71, 0xa8, 0xe1, 0x30, 0x89, 0xde,
- 0xa3, 0xcf, 0xd0, 0x3e, 0x44, 0xdf, 0xa4, 0x2f, 0xd1, 0x9b, 0x5e, 0x14, 0xe8, 0x4d, 0x71, 0x66,
- 0x38, 0xe4, 0x90, 0x92, 0x0c, 0xdf, 0x71, 0xe6, 0x9c, 0xef, 0x9b, 0x99, 0xf3, 0xab, 0x23, 0xf4,
- 0x1f, 0xec, 0x5d, 0x91, 0x91, 0xeb, 0x8d, 0x5b, 0x0c, 0x7f, 0x63, 0xfe, 0xb0, 0xc5, 0x70, 0xc0,
- 0x7c, 0x4a, 0x18, 0x09, 0x5a, 0xfe, 0xb0, 0xcd, 0x97, 0x4d, 0xbe, 0x36, 0x0d, 0x7f, 0xd8, 0xae,
- 0x6f, 0x8d, 0x09, 0x19, 0x4f, 0x70, 0x8b, 0x6f, 0x0d, 0xc3, 0xeb, 0xd6, 0xc0, 0x9b, 0x0b, 0x79,
- 0x7d, 0x3b, 0x2b, 0xc2, 0x53, 0x9f, 0x49, 0xe1, 0xe3, 0xac, 0x70, 0x14, 0xd2, 0x01, 0x73, 0x89,
- 0x17, 0xc9, 0x1f, 0x66, 0xe5, 0x01, 0xa3, 0xe1, 0x55, 0x74, 0x74, 0x7d, 0x27, 0x2b, 0x65, 0xee,
- 0x14, 0x07, 0x6c, 0x30, 0xf5, 0x57, 0xd1, 0x7f, 0xa5, 0x03, 0xdf, 0xc7, 0x34, 0x10, 0xf2, 0xc6,
- 0x6f, 0x06, 0x2a, 0xf6, 0xae, 0x06, 0x93, 0x01, 0x0d, 0xcc, 0x2d, 0x54, 0x22, 0x3e, 0xbb, 0x1c,
- 0x12, 0x32, 0xa9, 0x69, 0x96, 0x66, 0x97, 0x9c, 0x22, 0xf1, 0xd9, 0x21, 0x21, 0x13, 0x73, 0x1b,
- 0x95, 0x41, 0xe4, 0x7a, 0x6c, 0xb7, 0x5d, 0xd3, 0x2d, 0xcd, 0xce, 0x3b, 0xa0, 0x7b, 0x0a, 0x6b,
- 0x45, 0xd8, 0xed, 0xd4, 0x0c, 0x4b, 0xb3, 0x0d, 0x29, 0xec, 0x76, 0xcc, 0x47, 0x08, 0x81, 0x30,
- 0x14, 0xd0, 0x9c, 0xa5, 0xd9, 0xeb, 0x0e, 0xa8, 0x5f, 0xf0, 0x0d, 0x55, 0xdc, 0xed, 0xd4, 0xf2,
- 0x96, 0x66, 0xe7, 0x62, 0x71, 0x82, 0x0e, 0x04, 0xba, 0x60, 0x69, 0xf6, 0x5d, 0x2e, 0xee, 0xa5,
- 0xd0, 0x81, 0x40, 0x17, 0x2d, 0xcd, 0x36, 0x63, 0x71, 0xb7, 0x63, 0xee, 0xa0, 0x0a, 0x88, 0xaf,
- 0xdd, 0x6f, 0x78, 0xb4, 0xdb, 0xae, 0x95, 0x2c, 0xcd, 0x2e, 0x3a, 0x80, 0x38, 0x11, 0x3b, 0x29,
- 0x85, 0x6e, 0xa7, 0x56, 0xb6, 0x34, 0xbb, 0x90, 0x28, 0x74, 0x3b, 0xe6, 0x13, 0xb4, 0xc6, 0x0f,
- 0x90, 0x14, 0xc8, 0xd2, 0xec, 0x4d, 0x07, 0x40, 0xbd, 0x68, 0x2b, 0xad, 0xd2, 0xed, 0xd4, 0x2a,
- 0x96, 0x66, 0x57, 0x15, 0x95, 0x6e, 0x47, 0x1a, 0xe8, 0x7a, 0x42, 0x06, 0xac, 0x76, 0xdf, 0xd2,
- 0x6c, 0x9d, 0x1b, 0xe8, 0x04, 0xd6, 0xf2, 0x0d, 0x23, 0x12, 0x0e, 0x27, 0xb8, 0xf6, 0xc0, 0xd2,
- 0x6c, 0x8d, 0xbf, 0xe1, 0x88, 0x6f, 0x48, 0xec, 0x70, 0xce, 0x70, 0x50, 0xdb, 0xb0, 0x34, 0x7b,
- 0x8d, 0x63, 0x0f, 0x61, 0x1d, 0xbf, 0x9f, 0x51, 0xd7, 0x1b, 0xd7, 0xd6, 0x2d, 0xcd, 0x2e, 0x8b,
- 0xf7, 0xf3, 0x8d, 0xc6, 0x4f, 0x3a, 0x2a, 0x3a, 0xd8, 0xc7, 0x03, 0xc6, 0x9d, 0x4b, 0x13, 0xe7,
- 0x1a, 0xe0, 0x5c, 0x9a, 0x38, 0x97, 0x2a, 0xce, 0x35, 0xc0, 0xb9, 0x54, 0x71, 0x2e, 0x55, 0x9c,
- 0x6b, 0x80, 0x73, 0xa9, 0xe2, 0x5c, 0xaa, 0x3a, 0xd7, 0x00, 0xe7, 0x52, 0xd5, 0xb9, 0x54, 0x75,
- 0xae, 0x01, 0xce, 0xa5, 0xb1, 0x73, 0x23, 0x6a, 0x61, 0x96, 0x82, 0x65, 0x80, 0x59, 0xa8, 0x62,
- 0x16, 0x9a, 0x98, 0xa5, 0x68, 0x19, 0x60, 0x16, 0x1a, 0x9b, 0x25, 0x12, 0x47, 0x2f, 0xdf, 0xb4,
- 0x0c, 0x78, 0x39, 0x95, 0x2f, 0x97, 0xd4, 0xd2, 0x6a, 0x06, 0x58, 0x8d, 0x46, 0x56, 0x6b, 0xfc,
- 0xa5, 0xa1, 0xfc, 0xb1, 0x17, 0x4e, 0x03, 0xf3, 0xa9, 0x88, 0x78, 0xec, 0x85, 0x53, 0x1e, 0xf1,
- 0x1b, 0xed, 0x72, 0xd3, 0x1f, 0xb6, 0x9b, 0x20, 0xe5, 0xc1, 0x0f, 0x1f, 0xa0, 0x45, 0xa5, 0x16,
- 0x98, 0x27, 0xad, 0x45, 0x23, 0xad, 0x57, 0x68, 0x13, 0xb8, 0x3c, 0x1c, 0x30, 0x3c, 0x12, 0xca,
- 0x06, 0xa7, 0x7c, 0x10, 0x2b, 0x07, 0xcd, 0x33, 0x2e, 0xe5, 0xc0, 0x75, 0xe2, 0xb3, 0x64, 0x09,
- 0x70, 0x9a, 0x81, 0xe7, 0xf8, 0x59, 0xab, 0xe0, 0x54, 0x85, 0x37, 0x6c, 0x84, 0x14, 0xb2, 0x22,
- 0x32, 0x2e, 0xce, 0xce, 0xab, 0x1a, 0x7c, 0x1c, 0x9d, 0xf7, 0xaa, 0xba, 0x59, 0x42, 0xb9, 0xa3,
- 0xd3, 0xe3, 0x4f, 0x55, 0xd4, 0xf8, 0xdd, 0x40, 0x79, 0x50, 0x0d, 0xcc, 0x67, 0x22, 0x7a, 0xc4,
- 0x91, 0xfc, 0xfd, 0x95, 0x76, 0x85, 0x9f, 0x26, 0xa8, 0x78, 0x28, 0x89, 0x4f, 0xb3, 0xc5, 0x2d,
- 0x35, 0xa6, 0x24, 0xf4, 0x79, 0xfe, 0xa3, 0xf6, 0xbd, 0x58, 0x33, 0x68, 0x9e, 0xfb, 0xec, 0x2d,
- 0x88, 0x9c, 0x58, 0x09, 0xc8, 0x93, 0xf7, 0xf0, 0xc0, 0xc9, 0x92, 0x53, 0x95, 0x9c, 0x4a, 0x72,
- 0x78, 0x74, 0x9a, 0xdc, 0x89, 0xc9, 0xa5, 0x52, 0xfd, 0x0f, 0x0d, 0x95, 0xe4, 0x99, 0x37, 0x95,
- 0xad, 0x74, 0x7e, 0xe8, 0x99, 0xfc, 0xc8, 0x18, 0xc0, 0xb8, 0xd1, 0x00, 0xef, 0xd1, 0x06, 0xf1,
- 0x99, 0x50, 0x95, 0x37, 0x05, 0x33, 0x34, 0x96, 0x98, 0x01, 0x3e, 0x04, 0x4c, 0x5c, 0x3c, 0x83,
- 0xac, 0x77, 0xd1, 0x46, 0x5a, 0xe3, 0x76, 0x81, 0x58, 0xff, 0x17, 0x2a, 0x39, 0xca, 0xab, 0x57,
- 0xe4, 0xb3, 0xb3, 0x41, 0x71, 0x80, 0xe9, 0x17, 0x3c, 0xba, 0xbc, 0x76, 0xf1, 0x64, 0xd4, 0xe8,
- 0xa1, 0x42, 0xf4, 0x88, 0xb4, 0x3d, 0xb4, 0x9b, 0xed, 0xa1, 0xdf, 0x64, 0x8f, 0xc6, 0x9f, 0x3a,
- 0x2a, 0x3b, 0x78, 0x16, 0xba, 0x14, 0x8f, 0x44, 0x75, 0xc1, 0x33, 0x79, 0x1b, 0x9d, 0xdf, 0x06,
- 0xcf, 0xb8, 0x0f, 0x76, 0x50, 0x05, 0x44, 0xb2, 0x82, 0xea, 0x96, 0x0e, 0x45, 0x98, 0xe2, 0x99,
- 0x52, 0x84, 0x63, 0x05, 0x5e, 0x63, 0x74, 0x28, 0xc2, 0x52, 0x41, 0x14, 0x61, 0x50, 0x88, 0x8b,
- 0x70, 0xce, 0xd2, 0xa1, 0x08, 0x53, 0x3c, 0x53, 0x8b, 0x70, 0xa2, 0xc2, 0x6b, 0x8d, 0x0e, 0x45,
- 0x38, 0x56, 0x89, 0xaa, 0x0d, 0x1c, 0x13, 0x55, 0x1b, 0x9d, 0x57, 0x1b, 0x3c, 0x4b, 0xaa, 0x0d,
- 0x9e, 0x25, 0xd5, 0x46, 0xe7, 0xd5, 0x06, 0xcf, 0x94, 0x6a, 0x03, 0xf4, 0xc2, 0x6e, 0x25, 0x4b,
- 0xe7, 0xd5, 0x06, 0xcf, 0x94, 0x6a, 0x03, 0xaf, 0xe7, 0xd5, 0xa6, 0x6c, 0xe9, 0xbc, 0xda, 0xe0,
- 0x99, 0xa8, 0xd1, 0x4f, 0x85, 0x69, 0xb8, 0x6b, 0x91, 0xa5, 0x67, 0xab, 0x07, 0x9e, 0xf1, 0x8c,
- 0x7d, 0x26, 0x4e, 0x88, 0x4c, 0x5f, 0xb1, 0xf4, 0xc5, 0x74, 0xc1, 0xb3, 0xc8, 0xf4, 0xe7, 0x68,
- 0xf3, 0xfb, 0x01, 0x65, 0xee, 0x60, 0x22, 0x1d, 0x90, 0xb9, 0xa0, 0x96, 0xbd, 0xe0, 0xcd, 0x79,
- 0xd0, 0x38, 0x41, 0x85, 0x73, 0x0f, 0x93, 0xeb, 0xc0, 0x34, 0x91, 0x11, 0x30, 0x2a, 0x22, 0xe3,
- 0xdd, 0x1d, 0x07, 0x16, 0xe6, 0x0e, 0x32, 0xa6, 0xc1, 0x78, 0x49, 0x38, 0x80, 0xc2, 0x34, 0x18,
- 0x1f, 0x16, 0x51, 0x3e, 0xf4, 0x5c, 0xe2, 0x35, 0x7e, 0x2d, 0xa0, 0xdc, 0x77, 0x03, 0x3f, 0x30,
- 0xf7, 0xd1, 0x1a, 0xef, 0x00, 0x97, 0x8c, 0x5c, 0x0a, 0x3e, 0x48, 0xff, 0x2d, 0x8e, 0x05, 0x85,
- 0x26, 0xef, 0x2d, 0x7d, 0xd2, 0x63, 0xf4, 0xd8, 0x63, 0x74, 0xee, 0x20, 0x37, 0xde, 0x30, 0xdf,
- 0xa2, 0xaa, 0xf4, 0x23, 0xe0, 0x79, 0x4c, 0xe9, 0x9c, 0xe0, 0x51, 0x42, 0x20, 0xdd, 0xda, 0x27,
- 0x10, 0x64, 0x82, 0x64, 0x23, 0x48, 0x6d, 0x9a, 0x07, 0x68, 0x03, 0xc0, 0x40, 0x12, 0x75, 0x28,
- 0x51, 0x86, 0xb6, 0x13, 0x1a, 0xd0, 0xeb, 0x13, 0xd1, 0xae, 0x04, 0xc9, 0xda, 0x50, 0xd9, 0x02,
- 0x0a, 0xd1, 0xbd, 0x80, 0x24, 0x2e, 0xca, 0x29, 0x0a, 0xd1, 0xcc, 0xfa, 0x04, 0xdc, 0x18, 0x51,
- 0x84, 0xca, 0x96, 0xf9, 0x1a, 0xad, 0x07, 0x8c, 0x02, 0x3e, 0x72, 0x6e, 0x9e, 0x33, 0xd4, 0x95,
- 0xb7, 0x30, 0xda, 0x27, 0xb2, 0x7a, 0x03, 0x41, 0x25, 0x48, 0x76, 0x14, 0x3c, 0xe1, 0x3e, 0xe2,
- 0x9d, 0x72, 0x11, 0x2f, 0x1c, 0xa8, 0xe2, 0xc5, 0x4e, 0xfd, 0x15, 0xda, 0xcc, 0x58, 0xdb, 0xac,
- 0x22, 0xe3, 0x47, 0x3c, 0xe7, 0x5e, 0xce, 0x3b, 0xf0, 0x69, 0xde, 0x47, 0xf9, 0x2f, 0x83, 0x49,
- 0x88, 0xa3, 0xd8, 0x10, 0x8b, 0xff, 0xea, 0x7b, 0x5a, 0xfd, 0x00, 0xdd, 0x5b, 0x62, 0x6b, 0x95,
- 0xa2, 0xba, 0x84, 0xa2, 0xa4, 0x52, 0xbc, 0x41, 0x77, 0x17, 0xec, 0xac, 0x12, 0x94, 0x96, 0x10,
- 0xac, 0xab, 0x04, 0xef, 0xd1, 0xdd, 0x05, 0x2b, 0xab, 0x04, 0x39, 0x41, 0xb0, 0xa3, 0x12, 0xa4,
- 0xd2, 0x4c, 0xe1, 0xfa, 0x80, 0xaa, 0x59, 0x7b, 0xab, 0x54, 0x65, 0x41, 0xf5, 0x44, 0xa5, 0xca,
- 0x64, 0xe2, 0x12, 0x32, 0xc5, 0xf8, 0xb7, 0x25, 0x13, 0x10, 0x85, 0xac, 0xb1, 0x8b, 0x4c, 0x71,
- 0xc2, 0x47, 0x97, 0x7d, 0xbe, 0x65, 0x66, 0x37, 0x7e, 0xd1, 0x51, 0xf5, 0xd4, 0x1b, 0xb9, 0x14,
- 0x5f, 0xb1, 0x18, 0xd3, 0x5d, 0xd2, 0xd8, 0xff, 0xa9, 0x3c, 0x41, 0x3d, 0x40, 0xed, 0x71, 0xdd,
- 0x54, 0xcf, 0x16, 0x39, 0xb7, 0x1a, 0x47, 0x95, 0xde, 0x98, 0x09, 0x71, 0x91, 0x67, 0xff, 0xe6,
- 0xd0, 0xec, 0xed, 0x6e, 0x0e, 0xf7, 0xfa, 0xc7, 0x5b, 0xf9, 0xe7, 0x79, 0xda, 0xa4, 0x2b, 0x2f,
- 0xa9, 0x98, 0xf7, 0xe7, 0x22, 0x42, 0x1f, 0x3c, 0xf2, 0xd5, 0xeb, 0xcf, 0x7d, 0x1c, 0x98, 0x2f,
- 0x32, 0xbf, 0x1a, 0x20, 0xa3, 0xc4, 0xac, 0xd4, 0x94, 0xb3, 0x12, 0xaf, 0x0e, 0x3f, 0x00, 0x41,
- 0xf2, 0x8b, 0x62, 0x2f, 0x3b, 0x08, 0x41, 0x2d, 0xc8, 0xe2, 0x78, 0xbe, 0x09, 0x60, 0x32, 0x25,
- 0xed, 0x65, 0xa7, 0xa4, 0x15, 0xc8, 0x6e, 0x27, 0x85, 0xec, 0x76, 0xcc, 0xfd, 0x85, 0x11, 0xaa,
- 0xd2, 0x7e, 0xb8, 0x00, 0xbd, 0x50, 0x4e, 0x55, 0x06, 0xac, 0xfd, 0x85, 0x01, 0x6b, 0x15, 0x58,
- 0x1e, 0xac, 0x8c, 0x5f, 0x7b, 0xea, 0xe0, 0x52, 0x58, 0x71, 0x67, 0xde, 0x41, 0x93, 0x3b, 0x8b,
- 0x86, 0xba, 0x9f, 0x9a, 0x6a, 0x8a, 0x2b, 0x8e, 0x15, 0xed, 0x35, 0x39, 0x36, 0x6a, 0xb7, 0xfb,
- 0xa9, 0x76, 0x55, 0x5a, 0x01, 0x16, 0x19, 0x90, 0x80, 0xa3, 0x5e, 0xb7, 0xa7, 0x0e, 0x4c, 0xe5,
- 0x15, 0x77, 0xe6, 0xad, 0x39, 0xb9, 0xb3, 0xe8, 0xd4, 0x2f, 0xc5, 0x24, 0x27, 0x07, 0x70, 0x3e,
- 0xa9, 0x41, 0xd7, 0x5a, 0xb8, 0x75, 0xa4, 0xc0, 0x87, 0x3c, 0xb9, 0x30, 0xdf, 0x20, 0xf8, 0x45,
- 0x7f, 0x19, 0x0f, 0xe0, 0x7c, 0x94, 0x5b, 0x16, 0x55, 0x7d, 0xa9, 0xe1, 0xc0, 0x71, 0xf1, 0x4a,
- 0x66, 0xad, 0x98, 0xef, 0x6b, 0x5b, 0x51, 0x60, 0x2f, 0x79, 0x75, 0x78, 0xc5, 0xe4, 0x83, 0xc3,
- 0x2b, 0x26, 0x23, 0x79, 0xe2, 0x06, 0xac, 0x56, 0x5f, 0x71, 0xe6, 0xff, 0xdd, 0x80, 0x25, 0x91,
- 0x0c, 0x2b, 0x73, 0x57, 0xd8, 0x49, 0xa4, 0xd1, 0x36, 0xc7, 0xfd, 0x63, 0x01, 0x97, 0x98, 0x88,
- 0x7f, 0x49, 0x10, 0xff, 0x03, 0xa3, 0xf6, 0x78, 0x05, 0xe8, 0x18, 0xa4, 0x1c, 0xc4, 0xbf, 0xcc,
- 0xe7, 0x08, 0x0e, 0xbd, 0x1c, 0x78, 0xf3, 0x9a, 0xc5, 0x21, 0xf7, 0x17, 0x20, 0x07, 0xde, 0xdc,
- 0x29, 0x10, 0x9f, 0x1d, 0x78, 0xf3, 0x67, 0x2f, 0x50, 0x8e, 0x37, 0xce, 0x0a, 0x2a, 0x5e, 0x9c,
- 0x7d, 0x38, 0x3b, 0xff, 0x78, 0x56, 0xbd, 0x63, 0x96, 0x51, 0xfe, 0xe4, 0xd4, 0xe9, 0xf5, 0xab,
- 0x9a, 0x89, 0x50, 0xa1, 0x77, 0xfc, 0xbf, 0xf3, 0xb3, 0xa3, 0xaa, 0x0e, 0xdb, 0xfd, 0xe3, 0xb3,
- 0xfe, 0xbb, 0x2a, 0x3a, 0x7c, 0xfd, 0xe9, 0xe5, 0xd8, 0x65, 0x9f, 0xc3, 0x61, 0xf3, 0x8a, 0x4c,
- 0x5b, 0x63, 0x32, 0x19, 0x78, 0xe3, 0xe4, 0x6f, 0x8f, 0x2f, 0xed, 0xd6, 0xcd, 0x7f, 0xe8, 0xfc,
- 0x1d, 0x00, 0x00, 0xff, 0xff, 0xcc, 0x1a, 0x6e, 0x85, 0xf1, 0x11, 0x00, 0x00,
+ // 1945 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x58, 0xdb, 0x6e, 0x1b, 0xc9,
+ 0x11, 0xdd, 0x99, 0xe1, 0xb5, 0xa9, 0x0b, 0x3d, 0x92, 0xbd, 0x14, 0xbd, 0xbb, 0x1a, 0x13, 0x9b,
+ 0x80, 0x11, 0xb0, 0x12, 0x32, 0xa2, 0x19, 0x81, 0x5a, 0xdb, 0xb0, 0xd6, 0xf4, 0xae, 0xd7, 0x59,
+ 0x29, 0x20, 0xe9, 0x18, 0x58, 0x20, 0x10, 0x48, 0xb1, 0xc5, 0x1d, 0x84, 0x9c, 0x1e, 0xf6, 0x34,
+ 0x6d, 0xe9, 0x3f, 0xf2, 0x0d, 0xc9, 0x1f, 0xe4, 0x21, 0xf9, 0x93, 0xfc, 0x44, 0x5e, 0xf2, 0x10,
+ 0x20, 0x0f, 0x0e, 0xaa, 0x7a, 0x2e, 0xcd, 0x19, 0xde, 0xde, 0xa6, 0xbb, 0xea, 0x9c, 0xaa, 0xae,
+ 0xea, 0xae, 0xea, 0x69, 0xf2, 0x1b, 0xea, 0xde, 0xb0, 0xa1, 0xe3, 0x8e, 0x4e, 0x04, 0xbd, 0x13,
+ 0xde, 0xe0, 0x44, 0x50, 0x5f, 0x78, 0x9c, 0x09, 0xe6, 0x9f, 0x78, 0x03, 0x1b, 0x87, 0xc7, 0x38,
+ 0x36, 0x0d, 0x6f, 0x60, 0x57, 0x0f, 0x46, 0x8c, 0x8d, 0xc6, 0xf4, 0x04, 0xa7, 0x06, 0xb3, 0xdb,
+ 0x93, 0xbe, 0x7b, 0x2f, 0xe5, 0xd5, 0xc7, 0x49, 0x11, 0x9d, 0x78, 0x22, 0x14, 0x7e, 0x95, 0x14,
+ 0x0e, 0x67, 0xbc, 0x2f, 0x1c, 0xe6, 0x06, 0xf2, 0x2f, 0x92, 0x72, 0x5f, 0xf0, 0xd9, 0x4d, 0x60,
+ 0xba, 0x7a, 0x98, 0x94, 0x0a, 0x67, 0x42, 0x7d, 0xd1, 0x9f, 0x78, 0xcb, 0xe8, 0x3f, 0xf2, 0xbe,
+ 0xe7, 0x51, 0xee, 0x4b, 0x79, 0xed, 0x5f, 0x06, 0xc9, 0x77, 0x6f, 0xfa, 0xe3, 0x3e, 0xf7, 0xcd,
+ 0x03, 0x52, 0x60, 0x9e, 0xb8, 0x1e, 0x30, 0x36, 0xae, 0x68, 0x96, 0x56, 0x2f, 0x74, 0xf2, 0xcc,
+ 0x13, 0x17, 0x8c, 0x8d, 0xcd, 0xc7, 0xa4, 0x08, 0x22, 0xc7, 0x15, 0xa7, 0x76, 0x45, 0xb7, 0xb4,
+ 0x7a, 0xb6, 0x03, 0xba, 0x6f, 0x60, 0xac, 0x08, 0x9b, 0x8d, 0x8a, 0x61, 0x69, 0x75, 0x23, 0x14,
+ 0x36, 0x1b, 0xe6, 0x97, 0x84, 0x80, 0x70, 0x26, 0xa1, 0x19, 0x4b, 0xab, 0x6f, 0x77, 0x40, 0xfd,
+ 0x1d, 0x4e, 0xa8, 0xe2, 0x66, 0xa3, 0x92, 0xb5, 0xb4, 0x7a, 0x26, 0x12, 0xc7, 0x68, 0x5f, 0xa2,
+ 0x73, 0x96, 0x56, 0x7f, 0x80, 0xe2, 0xee, 0x1c, 0xda, 0x97, 0xe8, 0xbc, 0xa5, 0xd5, 0xcd, 0x48,
+ 0xdc, 0x6c, 0x98, 0x87, 0xa4, 0x04, 0xe2, 0x5b, 0xe7, 0x8e, 0x0e, 0x4f, 0xed, 0x4a, 0xc1, 0xd2,
+ 0xea, 0xf9, 0x0e, 0x20, 0x5e, 0xcb, 0x99, 0x39, 0x85, 0x66, 0xa3, 0x52, 0xb4, 0xb4, 0x7a, 0x2e,
+ 0x56, 0x68, 0x36, 0xcc, 0x27, 0x64, 0x0b, 0x0d, 0x84, 0x14, 0xc4, 0xd2, 0xea, 0xbb, 0x1d, 0x00,
+ 0x75, 0x83, 0xa9, 0x79, 0x95, 0x66, 0xa3, 0x52, 0xb2, 0xb4, 0x7a, 0x59, 0x51, 0x69, 0x36, 0xc2,
+ 0x00, 0xdd, 0x8e, 0x59, 0x5f, 0x54, 0xf6, 0x2d, 0xad, 0xae, 0x63, 0x80, 0x5e, 0xc3, 0x38, 0x5c,
+ 0xc3, 0x90, 0xcd, 0x06, 0x63, 0x5a, 0x79, 0x68, 0x69, 0x75, 0x0d, 0xd7, 0xf0, 0x0a, 0x27, 0x42,
+ 0xec, 0xe0, 0x5e, 0x50, 0xbf, 0xb2, 0x63, 0x69, 0xf5, 0x2d, 0xc4, 0x5e, 0xc0, 0x38, 0x5a, 0xbf,
+ 0xe0, 0x8e, 0x3b, 0xaa, 0x6c, 0x5b, 0x5a, 0xbd, 0x28, 0xd7, 0x8f, 0x13, 0xb5, 0xbf, 0xe8, 0x24,
+ 0xdf, 0xa1, 0x1e, 0xed, 0x0b, 0x4c, 0x2e, 0x8f, 0x93, 0x6b, 0x40, 0x72, 0x79, 0x9c, 0x5c, 0xae,
+ 0x24, 0xd7, 0x80, 0xe4, 0x72, 0x25, 0xb9, 0x5c, 0x49, 0xae, 0x01, 0xc9, 0xe5, 0x4a, 0x72, 0xb9,
+ 0x9a, 0x5c, 0x03, 0x92, 0xcb, 0xd5, 0xe4, 0x72, 0x35, 0xb9, 0x06, 0x24, 0x97, 0x47, 0xc9, 0x0d,
+ 0xa8, 0x65, 0x58, 0x72, 0x96, 0x01, 0x61, 0xe1, 0x4a, 0x58, 0x78, 0x1c, 0x96, 0xbc, 0x65, 0x40,
+ 0x58, 0x78, 0x14, 0x96, 0x40, 0x1c, 0xac, 0x7c, 0xd7, 0x32, 0x60, 0xe5, 0x3c, 0x5c, 0x79, 0x48,
+ 0x1d, 0x46, 0xcd, 0x80, 0xa8, 0xf1, 0x20, 0x6a, 0xb5, 0xff, 0x69, 0x24, 0xdb, 0x76, 0x67, 0x13,
+ 0xdf, 0xfc, 0x5a, 0xee, 0x78, 0xea, 0xce, 0x26, 0xb8, 0xe3, 0x77, 0xec, 0xe2, 0xb1, 0x37, 0xb0,
+ 0x8f, 0x41, 0x8a, 0x9b, 0x1f, 0x3e, 0x40, 0x8b, 0x87, 0x5a, 0x10, 0x9e, 0x79, 0x2d, 0x1e, 0x68,
+ 0x3d, 0x23, 0xbb, 0xc0, 0xe5, 0x52, 0x5f, 0xd0, 0xa1, 0x54, 0x36, 0x90, 0xf2, 0x61, 0xa4, 0xec,
+ 0x1f, 0x5f, 0xa2, 0x14, 0x81, 0xdb, 0xcc, 0x13, 0xf1, 0x10, 0xe0, 0x3c, 0x01, 0xcf, 0xa0, 0xad,
+ 0x65, 0x70, 0xae, 0xc2, 0x6b, 0x75, 0x42, 0x14, 0xb2, 0x3c, 0x31, 0xde, 0x5d, 0x5e, 0x95, 0x35,
+ 0xf8, 0x78, 0x75, 0xd5, 0x2d, 0xeb, 0x66, 0x81, 0x64, 0x5e, 0xbd, 0x69, 0xff, 0x5c, 0x26, 0xb5,
+ 0x7f, 0x1b, 0x24, 0x0b, 0xaa, 0xbe, 0x79, 0x24, 0x77, 0x8f, 0x34, 0x89, 0xeb, 0x2f, 0xd9, 0x25,
+ 0xb4, 0x26, 0xa9, 0x70, 0x2b, 0xc9, 0x4f, 0xf3, 0x04, 0x23, 0x35, 0xe2, 0x6c, 0xe6, 0xe1, 0xf9,
+ 0x27, 0xf6, 0x5e, 0xa4, 0xe9, 0x1f, 0x5f, 0x79, 0xe2, 0x7b, 0x10, 0x75, 0x22, 0x25, 0x20, 0x8f,
+ 0xd7, 0x83, 0x1b, 0x27, 0x49, 0xce, 0x55, 0x72, 0x1e, 0x92, 0xc3, 0xa2, 0xe7, 0xc9, 0x3b, 0x11,
+ 0x79, 0xa8, 0x54, 0xfd, 0x8f, 0x46, 0x0a, 0xa1, 0xcd, 0x55, 0x65, 0x6b, 0xfe, 0x7c, 0xe8, 0x89,
+ 0xf3, 0x91, 0x08, 0x80, 0xb1, 0x32, 0x00, 0x3f, 0x92, 0x1d, 0xe6, 0x09, 0xa9, 0x1a, 0x7a, 0x0a,
+ 0x61, 0xa8, 0x2d, 0x08, 0x03, 0x7c, 0x48, 0x98, 0x74, 0x3c, 0x81, 0xac, 0x36, 0xc9, 0xce, 0xbc,
+ 0xc6, 0x66, 0x1b, 0xb1, 0xfa, 0x2b, 0x52, 0xe8, 0x28, 0xab, 0x5e, 0x72, 0x9e, 0x3b, 0x3b, 0x9c,
+ 0xfa, 0x94, 0x7f, 0xa0, 0xc3, 0xeb, 0x5b, 0x87, 0x8e, 0x87, 0xb5, 0x2e, 0xc9, 0x05, 0x8b, 0x98,
+ 0x8f, 0x87, 0xb6, 0x3a, 0x1e, 0xfa, 0xaa, 0x78, 0xd4, 0xfe, 0xab, 0x93, 0x62, 0x87, 0x4e, 0x67,
+ 0x0e, 0xa7, 0x43, 0x59, 0x5d, 0xe8, 0x34, 0xf4, 0x46, 0x47, 0x6f, 0xe8, 0x14, 0x73, 0x70, 0x48,
+ 0x4a, 0x20, 0x0a, 0x2b, 0xa8, 0x6e, 0xe9, 0x50, 0x84, 0x39, 0x9d, 0x2a, 0x45, 0x38, 0x52, 0xc0,
+ 0x1a, 0xa3, 0x43, 0x11, 0x0e, 0x15, 0x64, 0x11, 0x06, 0x85, 0xa8, 0x08, 0x67, 0x2c, 0x1d, 0x8a,
+ 0x30, 0xa7, 0x53, 0xb5, 0x08, 0xc7, 0x2a, 0x58, 0x6b, 0x74, 0x28, 0xc2, 0x91, 0x4a, 0x50, 0x6d,
+ 0xc0, 0x4c, 0x50, 0x6d, 0x74, 0xac, 0x36, 0x74, 0x1a, 0x57, 0x1b, 0x3a, 0x8d, 0xab, 0x8d, 0x8e,
+ 0xd5, 0x86, 0x4e, 0x95, 0x6a, 0x03, 0xf4, 0x32, 0x6e, 0x05, 0x4b, 0xc7, 0x6a, 0x43, 0xa7, 0x4a,
+ 0xb5, 0x81, 0xd5, 0x63, 0xb5, 0x29, 0x5a, 0x3a, 0x56, 0x1b, 0x3a, 0x95, 0x35, 0xfa, 0x6b, 0x19,
+ 0x1a, 0x4c, 0x2d, 0xb1, 0xf4, 0x64, 0xf5, 0xa0, 0x53, 0x3c, 0xb1, 0x47, 0xd2, 0x42, 0x10, 0xfa,
+ 0x92, 0xa5, 0xa7, 0x8f, 0x0b, 0x9d, 0x06, 0xa1, 0xbf, 0x22, 0xbb, 0x7f, 0xe8, 0x73, 0xe1, 0xf4,
+ 0xc7, 0x61, 0x02, 0x12, 0x0e, 0x6a, 0x49, 0x07, 0x57, 0x9f, 0x83, 0xda, 0x6b, 0x92, 0xbb, 0x72,
+ 0x29, 0xbb, 0xf5, 0x4d, 0x93, 0x18, 0xbe, 0xe0, 0x72, 0x67, 0xfc, 0xf0, 0x59, 0x07, 0x06, 0xe6,
+ 0x21, 0x31, 0x26, 0xfe, 0x68, 0xc1, 0x76, 0x00, 0x85, 0x89, 0x3f, 0xba, 0xc8, 0x93, 0xec, 0xcc,
+ 0x75, 0x98, 0x5b, 0xfb, 0x67, 0x8e, 0x64, 0x7e, 0xea, 0x7b, 0xbe, 0x79, 0x4e, 0xb6, 0xb0, 0x03,
+ 0x5c, 0x0b, 0x76, 0x2d, 0xf9, 0xe0, 0xf8, 0x1f, 0x20, 0x16, 0x14, 0x8e, 0xb1, 0xb7, 0xf4, 0x58,
+ 0x57, 0xf0, 0xb6, 0x2b, 0xf8, 0x7d, 0x87, 0x38, 0xd1, 0x84, 0xf9, 0x3d, 0x29, 0x87, 0x79, 0x04,
+ 0x3c, 0xee, 0x29, 0x1d, 0x09, 0xbe, 0x8c, 0x09, 0xc2, 0xb4, 0xf6, 0x18, 0x6c, 0x32, 0x49, 0xb2,
+ 0xe3, 0xcf, 0x4d, 0x9a, 0x2f, 0xc9, 0x0e, 0x80, 0x81, 0x24, 0xe8, 0x50, 0xb2, 0x0c, 0x3d, 0x8e,
+ 0x69, 0x40, 0xaf, 0xc7, 0x64, 0xbb, 0x92, 0x24, 0x5b, 0x03, 0x65, 0x0a, 0x28, 0x64, 0xf7, 0x02,
+ 0x92, 0xa8, 0x28, 0xcf, 0x51, 0xc8, 0x66, 0xd6, 0x63, 0x90, 0xc6, 0x80, 0x62, 0xa6, 0x4c, 0x99,
+ 0xcf, 0xc9, 0xb6, 0x2f, 0x38, 0xe0, 0x83, 0xe4, 0x66, 0x91, 0xa1, 0xaa, 0xac, 0x45, 0xf0, 0x1e,
+ 0x0b, 0xab, 0x37, 0x10, 0x94, 0xfc, 0x78, 0x46, 0xc1, 0x33, 0xcc, 0x11, 0x76, 0xca, 0x34, 0x5e,
+ 0x26, 0x50, 0xc5, 0xcb, 0x99, 0xea, 0x33, 0xb2, 0x9b, 0x88, 0xb6, 0x59, 0x26, 0xc6, 0x9f, 0xe9,
+ 0x3d, 0x66, 0x39, 0xdb, 0x81, 0x4f, 0x73, 0x9f, 0x64, 0x3f, 0xf4, 0xc7, 0x33, 0x1a, 0xec, 0x0d,
+ 0x39, 0x68, 0xe9, 0x67, 0x5a, 0xf5, 0x25, 0xd9, 0x5b, 0x10, 0x6b, 0x95, 0xa2, 0xbc, 0x80, 0xa2,
+ 0xa0, 0x52, 0xbc, 0x20, 0x0f, 0x52, 0x71, 0x56, 0x09, 0x0a, 0x0b, 0x08, 0xb6, 0x55, 0x82, 0x1f,
+ 0xc9, 0x83, 0x54, 0x94, 0x55, 0x82, 0x8c, 0x24, 0x38, 0x54, 0x09, 0xe6, 0x8e, 0x99, 0xc2, 0xf5,
+ 0x96, 0x94, 0x93, 0xf1, 0x56, 0xa9, 0x8a, 0x92, 0xea, 0x89, 0x4a, 0x95, 0x38, 0x89, 0x0b, 0xc8,
+ 0x94, 0xe0, 0x6f, 0x4a, 0x26, 0x21, 0x0a, 0x59, 0xed, 0x94, 0x98, 0xd2, 0xc2, 0x7b, 0x47, 0xfc,
+ 0xb2, 0xe1, 0xc9, 0xae, 0xfd, 0x4d, 0x27, 0xe5, 0x37, 0xee, 0xd0, 0xe1, 0xf4, 0x46, 0x44, 0x98,
+ 0xe6, 0x82, 0xc6, 0xfe, 0xb9, 0xb2, 0x04, 0xd5, 0x80, 0xda, 0xe3, 0x9a, 0x73, 0x3d, 0x5b, 0x9e,
+ 0xb9, 0xe5, 0x38, 0xae, 0xf4, 0xc6, 0xc4, 0x16, 0x97, 0xe7, 0xec, 0xd7, 0x08, 0x4d, 0x7a, 0xb7,
+ 0x7a, 0xbb, 0x57, 0xdf, 0x6f, 0x94, 0x9f, 0x6f, 0xe6, 0x43, 0xba, 0xd4, 0x49, 0x25, 0xbc, 0x0e,
+ 0x21, 0xed, 0x3b, 0x41, 0x5d, 0xdf, 0x61, 0xae, 0xbf, 0xae, 0x13, 0xaa, 0x77, 0x0a, 0xba, 0xf9,
+ 0xaf, 0xd0, 0x51, 0xa6, 0xb0, 0x5f, 0xa6, 0xb5, 0x7f, 0x18, 0x64, 0x2f, 0xb6, 0xf5, 0x1d, 0x73,
+ 0x45, 0xdf, 0x71, 0x29, 0xb7, 0x7f, 0x2b, 0x7f, 0x15, 0xe8, 0x9d, 0x64, 0x36, 0x77, 0xe5, 0x0e,
+ 0x8d, 0x34, 0x2b, 0xa7, 0x68, 0x0a, 0x3c, 0x6b, 0xdf, 0xa1, 0x35, 0xfb, 0x29, 0x5e, 0x3b, 0x10,
+ 0x22, 0x7d, 0x4d, 0x83, 0x1a, 0xe8, 0xfc, 0x96, 0x04, 0x49, 0xff, 0xed, 0x6f, 0x63, 0x4b, 0x50,
+ 0xb5, 0xd2, 0xa0, 0xa7, 0xc9, 0x23, 0x12, 0x18, 0x85, 0x6f, 0xfb, 0x22, 0x36, 0x2a, 0x13, 0x9a,
+ 0xc6, 0x37, 0xd3, 0xe7, 0x22, 0xf0, 0x40, 0x8e, 0xc0, 0x71, 0xbe, 0xc6, 0xf1, 0x67, 0x78, 0x6b,
+ 0xdf, 0xe2, 0x09, 0xc7, 0xf9, 0x4a, 0xc7, 0x9f, 0x27, 0x2f, 0xe0, 0x84, 0xcf, 0x39, 0xce, 0xd7,
+ 0x38, 0xfe, 0x22, 0x7d, 0x13, 0x0d, 0x3c, 0x08, 0xba, 0x6b, 0x95, 0x90, 0x9f, 0xa8, 0xef, 0xf7,
+ 0x47, 0xb4, 0x4b, 0xc5, 0x51, 0xa1, 0x90, 0x29, 0x7f, 0xfa, 0xf4, 0xe9, 0x53, 0xbe, 0xa5, 0x17,
+ 0xb4, 0xda, 0xdf, 0x75, 0xb2, 0x17, 0x0b, 0x23, 0xd6, 0x35, 0xbb, 0xc9, 0xfe, 0x13, 0x79, 0x38,
+ 0x91, 0xa8, 0x6b, 0x9f, 0xa2, 0x7b, 0x01, 0x4e, 0x7a, 0x17, 0x33, 0xe2, 0xff, 0x65, 0xc9, 0xae,
+ 0x24, 0xa6, 0x23, 0x43, 0x9d, 0xbd, 0x49, 0x7a, 0xd2, 0x1e, 0x92, 0x03, 0x97, 0x89, 0xeb, 0x0d,
+ 0x4d, 0xec, 0xaf, 0x31, 0xf1, 0xc8, 0x65, 0x62, 0xc1, 0xbc, 0x7d, 0x4e, 0x48, 0x2a, 0xae, 0x0a,
+ 0xed, 0x57, 0x0b, 0x6e, 0x8b, 0x34, 0x0a, 0xea, 0x5f, 0xf3, 0x84, 0xbc, 0x75, 0xd9, 0x47, 0xb7,
+ 0x77, 0xef, 0x51, 0xdf, 0x7c, 0x9a, 0xb8, 0xb2, 0x43, 0x3b, 0x93, 0x0f, 0x15, 0xc7, 0xe1, 0x43,
+ 0x05, 0xb6, 0xe6, 0x3f, 0xc2, 0xe9, 0x8d, 0x8f, 0xde, 0x59, 0xf2, 0xe8, 0x41, 0x23, 0x4e, 0xe2,
+ 0xf0, 0x20, 0x4a, 0x60, 0xfc, 0x44, 0x71, 0x96, 0x7c, 0xa2, 0x58, 0x82, 0x6c, 0x36, 0xe6, 0x90,
+ 0xcd, 0x86, 0x79, 0x9e, 0x7a, 0xbf, 0x28, 0xd9, 0x5f, 0xa4, 0xa0, 0xef, 0x14, 0xab, 0xca, 0xeb,
+ 0xc6, 0x79, 0xea, 0x75, 0x63, 0x19, 0x38, 0x34, 0xac, 0xbc, 0x7d, 0x9c, 0xa9, 0xaf, 0x06, 0xb9,
+ 0x25, 0x3e, 0xe3, 0xf5, 0x35, 0xf6, 0x59, 0xde, 0x66, 0xcf, 0xe7, 0x9e, 0x14, 0xf2, 0x4b, 0xcc,
+ 0xca, 0xbb, 0x6d, 0x6c, 0x36, 0xb8, 0xeb, 0x9e, 0xcf, 0xed, 0xe5, 0xc2, 0x12, 0xb0, 0xdc, 0xd9,
+ 0x31, 0x38, 0xa8, 0x9b, 0x67, 0xea, 0x6b, 0x45, 0x71, 0x89, 0xcf, 0x78, 0x2f, 0x8e, 0x7d, 0x96,
+ 0xd7, 0xe4, 0xa0, 0x62, 0x85, 0xaf, 0x5f, 0xc1, 0x36, 0x3d, 0x48, 0x7b, 0x1d, 0x28, 0xe0, 0x0b,
+ 0x4b, 0x38, 0x30, 0x5f, 0x10, 0xf8, 0x9d, 0xbe, 0x8e, 0x5e, 0xbf, 0xf0, 0x1d, 0x65, 0xd1, 0xae,
+ 0xea, 0x85, 0x1a, 0x58, 0xae, 0xa2, 0x51, 0xd8, 0x32, 0xe5, 0xe3, 0x5a, 0xe5, 0x20, 0xe8, 0x2a,
+ 0x0b, 0x56, 0x3d, 0xbb, 0x11, 0xe1, 0x82, 0x67, 0x37, 0x22, 0xdc, 0xc9, 0x63, 0xc7, 0x17, 0x95,
+ 0xea, 0x12, 0x9b, 0xbf, 0x77, 0x7c, 0x11, 0xef, 0x64, 0x18, 0x99, 0xa7, 0x32, 0x4e, 0xb2, 0x87,
+ 0x3d, 0x46, 0xdc, 0xa3, 0x14, 0x2e, 0x0e, 0x11, 0x7e, 0x85, 0x20, 0x7c, 0x3d, 0x0c, 0xce, 0x5b,
+ 0x1a, 0xd4, 0x06, 0x29, 0x82, 0xf0, 0xcb, 0xfc, 0x86, 0x80, 0xd1, 0xeb, 0xbe, 0x7b, 0x5f, 0xb1,
+ 0x10, 0xb2, 0x9f, 0x82, 0xbc, 0x74, 0xef, 0x3b, 0x39, 0xe6, 0x89, 0x97, 0xee, 0xfd, 0xd1, 0x53,
+ 0x92, 0xc1, 0x5b, 0x6b, 0x89, 0xe4, 0xdf, 0x5d, 0xbe, 0xbd, 0xbc, 0x7a, 0x7f, 0x59, 0xfe, 0xcc,
+ 0x2c, 0x92, 0xec, 0xeb, 0x37, 0x9d, 0x6e, 0xaf, 0xac, 0x99, 0x84, 0xe4, 0xba, 0xed, 0xef, 0xae,
+ 0x2e, 0x5f, 0x95, 0x75, 0x98, 0xee, 0xb5, 0x2f, 0x7b, 0x3f, 0x94, 0x49, 0x6b, 0x6d, 0x67, 0x7b,
+ 0x98, 0xec, 0x6c, 0xad, 0x0d, 0x3a, 0xdb, 0xa3, 0x74, 0x67, 0x6b, 0xad, 0xed, 0x6c, 0x9f, 0xaf,
+ 0xe8, 0x6c, 0xad, 0x0d, 0x3a, 0x5b, 0x65, 0x4d, 0x67, 0x6b, 0xfd, 0x4e, 0xbe, 0xd4, 0x00, 0x47,
+ 0xf8, 0xfb, 0x99, 0x22, 0x39, 0xb4, 0x8c, 0x7a, 0x1e, 0xdf, 0x68, 0xda, 0x77, 0xe1, 0x6b, 0x63,
+ 0x6b, 0x6d, 0x6f, 0xb3, 0x56, 0xf4, 0xb6, 0xd6, 0x06, 0xbd, 0xed, 0xc9, 0x9a, 0xde, 0x76, 0xf1,
+ 0xfc, 0xe7, 0x6f, 0x47, 0x8e, 0xf8, 0x65, 0x36, 0x38, 0xbe, 0x61, 0x93, 0x93, 0x11, 0x1b, 0xf7,
+ 0xdd, 0x51, 0xfc, 0x34, 0xfc, 0xc1, 0x3e, 0x59, 0xfd, 0xe8, 0xfd, 0xff, 0x00, 0x00, 0x00, 0xff,
+ 0xff, 0x59, 0x20, 0x4f, 0x36, 0x15, 0x17, 0x00, 0x00,
}
func init() {
xxx_Test_ProtoFile_FileDesc.Enums = xxx_Test_ProtoFile_EnumDescs[0:1]
- xxx_Test_ProtoFile_FileDesc.Messages = xxx_Test_ProtoFile_MessageDescs[0:12]
+ xxx_Test_ProtoFile_FileDesc.Messages = xxx_Test_ProtoFile_MessageDescs[0:16]
xxx_Test_ProtoFile_MessageDescs[2].Enums = xxx_Test_ProtoFile_EnumDescs[1:2]
- xxx_Test_ProtoFile_MessageDescs[3].Messages = xxx_Test_ProtoFile_MessageDescs[12:14]
- xxx_Test_ProtoFile_MessageDescs[8].Messages = xxx_Test_ProtoFile_MessageDescs[15:21]
- xxx_Test_ProtoFile_MessageDescs[10].Messages = xxx_Test_ProtoFile_MessageDescs[21:22]
- xxx_Test_ProtoFile_MessageDescs[12].Messages = xxx_Test_ProtoFile_MessageDescs[14:15]
+ xxx_Test_ProtoFile_MessageDescs[3].Messages = xxx_Test_ProtoFile_MessageDescs[16:18]
+ xxx_Test_ProtoFile_MessageDescs[8].Messages = xxx_Test_ProtoFile_MessageDescs[19:25]
+ xxx_Test_ProtoFile_MessageDescs[10].Messages = xxx_Test_ProtoFile_MessageDescs[25:26]
+ xxx_Test_ProtoFile_MessageDescs[16].Messages = xxx_Test_ProtoFile_MessageDescs[18:19]
xxx_Test_ProtoFile_MessageDescs[2].Fields[0].EnumType = xxx_Test_ProtoFile_EnumTypes[0]
xxx_Test_ProtoFile_MessageDescs[2].Fields[1].EnumType = xxx_Test_ProtoFile_EnumTypes[0]
xxx_Test_ProtoFile_MessageDescs[2].Fields[2].EnumType = xxx_Test_ProtoFile_EnumTypes[1]
xxx_Test_ProtoFile_MessageDescs[2].Fields[3].EnumType = xxx_Test_ProtoFile_EnumTypes[1]
xxx_Test_ProtoFile_MessageDescs[3].Fields[0].MessageType = xxx_Test_ProtoFile_MessageTypes[4].Type
- xxx_Test_ProtoFile_MessageDescs[3].Fields[1].MessageType = xxx_Test_ProtoFile_MessageTypes[12].Type
+ xxx_Test_ProtoFile_MessageDescs[3].Fields[1].MessageType = xxx_Test_ProtoFile_MessageTypes[16].Type
xxx_Test_ProtoFile_MessageDescs[3].Fields[2].MessageType = xxx_Test_ProtoFile_MessageTypes[4].Type
- xxx_Test_ProtoFile_MessageDescs[3].Fields[3].MessageType = xxx_Test_ProtoFile_MessageTypes[13].Type
+ xxx_Test_ProtoFile_MessageDescs[3].Fields[3].MessageType = xxx_Test_ProtoFile_MessageTypes[17].Type
xxx_Test_ProtoFile_MessageDescs[4].Fields[1].MessageType = xxx_Test_ProtoFile_MessageTypes[4].Type
xxx_Test_ProtoFile_MessageDescs[5].Fields[9].EnumType = xxx_Test_ProtoFile_EnumTypes[0]
xxx_Test_ProtoFile_MessageDescs[5].Fields[10].MessageType = xxx_Test_ProtoFile_MessageTypes[4].Type
xxx_Test_ProtoFile_MessageDescs[7].Fields[1].MessageType = xxx_Test_ProtoFile_MessageTypes[4].Type
- xxx_Test_ProtoFile_MessageDescs[8].Fields[0].MessageType = xxx_Test_ProtoFile_MessageDescs[15].Reference()
- xxx_Test_ProtoFile_MessageDescs[8].Fields[1].MessageType = xxx_Test_ProtoFile_MessageDescs[16].Reference()
- xxx_Test_ProtoFile_MessageDescs[8].Fields[2].MessageType = xxx_Test_ProtoFile_MessageDescs[17].Reference()
- xxx_Test_ProtoFile_MessageDescs[8].Fields[3].MessageType = xxx_Test_ProtoFile_MessageDescs[18].Reference()
- xxx_Test_ProtoFile_MessageDescs[8].Fields[4].MessageType = xxx_Test_ProtoFile_MessageDescs[19].Reference()
- xxx_Test_ProtoFile_MessageDescs[8].Fields[5].MessageType = xxx_Test_ProtoFile_MessageDescs[20].Reference()
+ xxx_Test_ProtoFile_MessageDescs[8].Fields[0].MessageType = xxx_Test_ProtoFile_MessageDescs[19].Reference()
+ xxx_Test_ProtoFile_MessageDescs[8].Fields[1].MessageType = xxx_Test_ProtoFile_MessageDescs[20].Reference()
+ xxx_Test_ProtoFile_MessageDescs[8].Fields[2].MessageType = xxx_Test_ProtoFile_MessageDescs[21].Reference()
+ xxx_Test_ProtoFile_MessageDescs[8].Fields[3].MessageType = xxx_Test_ProtoFile_MessageDescs[22].Reference()
+ xxx_Test_ProtoFile_MessageDescs[8].Fields[4].MessageType = xxx_Test_ProtoFile_MessageDescs[23].Reference()
+ xxx_Test_ProtoFile_MessageDescs[8].Fields[5].MessageType = xxx_Test_ProtoFile_MessageDescs[24].Reference()
xxx_Test_ProtoFile_MessageDescs[10].Fields[0].MessageType = xxx_Test_ProtoFile_MessageTypes[9].Type
xxx_Test_ProtoFile_MessageDescs[10].Fields[1].MessageType = xxx_Test_ProtoFile_MessageTypes[9].Type
- xxx_Test_ProtoFile_MessageDescs[10].Fields[2].MessageType = xxx_Test_ProtoFile_MessageDescs[21].Reference()
- xxx_Test_ProtoFile_MessageDescs[11].Fields[0].MessageType = protoimpl.X.MessageTypeOf((*wrappers.BoolValue)(nil))
- xxx_Test_ProtoFile_MessageDescs[11].Fields[1].MessageType = protoimpl.X.MessageTypeOf((*wrappers.Int32Value)(nil))
- xxx_Test_ProtoFile_MessageDescs[11].Fields[2].MessageType = protoimpl.X.MessageTypeOf((*wrappers.Int64Value)(nil))
- xxx_Test_ProtoFile_MessageDescs[11].Fields[3].MessageType = protoimpl.X.MessageTypeOf((*wrappers.UInt32Value)(nil))
- xxx_Test_ProtoFile_MessageDescs[11].Fields[4].MessageType = protoimpl.X.MessageTypeOf((*wrappers.UInt64Value)(nil))
- xxx_Test_ProtoFile_MessageDescs[11].Fields[5].MessageType = protoimpl.X.MessageTypeOf((*wrappers.FloatValue)(nil))
- xxx_Test_ProtoFile_MessageDescs[11].Fields[6].MessageType = protoimpl.X.MessageTypeOf((*wrappers.DoubleValue)(nil))
- xxx_Test_ProtoFile_MessageDescs[11].Fields[7].MessageType = protoimpl.X.MessageTypeOf((*wrappers.StringValue)(nil))
- xxx_Test_ProtoFile_MessageDescs[11].Fields[8].MessageType = protoimpl.X.MessageTypeOf((*wrappers.BytesValue)(nil))
- xxx_Test_ProtoFile_MessageDescs[11].Fields[9].MessageType = protoimpl.X.MessageTypeOf((*duration.Duration)(nil))
- xxx_Test_ProtoFile_MessageDescs[11].Fields[10].MessageType = protoimpl.X.MessageTypeOf((*timestamp.Timestamp)(nil))
- xxx_Test_ProtoFile_MessageDescs[11].Fields[11].MessageType = protoimpl.X.MessageTypeOf((*_struct.Struct)(nil))
- xxx_Test_ProtoFile_MessageDescs[11].Fields[12].MessageType = protoimpl.X.MessageTypeOf((*_struct.ListValue)(nil))
- xxx_Test_ProtoFile_MessageDescs[11].Fields[13].MessageType = protoimpl.X.MessageTypeOf((*_struct.Value)(nil))
- xxx_Test_ProtoFile_MessageDescs[11].Fields[14].MessageType = protoimpl.X.MessageTypeOf((*empty.Empty)(nil))
- xxx_Test_ProtoFile_MessageDescs[11].Fields[15].MessageType = protoimpl.X.MessageTypeOf((*any.Any)(nil))
- xxx_Test_ProtoFile_MessageDescs[12].Fields[2].MessageType = xxx_Test_ProtoFile_MessageTypes[4].Type
- xxx_Test_ProtoFile_MessageDescs[12].Fields[3].MessageType = xxx_Test_ProtoFile_MessageTypes[14].Type
- xxx_Test_ProtoFile_MessageDescs[14].Fields[0].EnumType = xxx_Test_ProtoFile_EnumTypes[0]
- xxx_Test_ProtoFile_MessageDescs[18].Fields[1].EnumType = xxx_Test_ProtoFile_EnumTypes[0]
- xxx_Test_ProtoFile_MessageDescs[19].Fields[1].MessageType = xxx_Test_ProtoFile_MessageTypes[4].Type
- xxx_Test_ProtoFile_MessageDescs[20].Fields[1].MessageType = xxx_Test_ProtoFile_MessageTypes[7].Type
- xxx_Test_ProtoFile_MessageDescs[21].Fields[1].MessageType = xxx_Test_ProtoFile_MessageTypes[9].Type
+ xxx_Test_ProtoFile_MessageDescs[10].Fields[2].MessageType = xxx_Test_ProtoFile_MessageDescs[25].Reference()
+ xxx_Test_ProtoFile_MessageDescs[15].Fields[0].MessageType = protoimpl.X.MessageTypeOf((*wrappers.BoolValue)(nil))
+ xxx_Test_ProtoFile_MessageDescs[15].Fields[1].MessageType = protoimpl.X.MessageTypeOf((*wrappers.Int32Value)(nil))
+ xxx_Test_ProtoFile_MessageDescs[15].Fields[2].MessageType = protoimpl.X.MessageTypeOf((*wrappers.Int64Value)(nil))
+ xxx_Test_ProtoFile_MessageDescs[15].Fields[3].MessageType = protoimpl.X.MessageTypeOf((*wrappers.UInt32Value)(nil))
+ xxx_Test_ProtoFile_MessageDescs[15].Fields[4].MessageType = protoimpl.X.MessageTypeOf((*wrappers.UInt64Value)(nil))
+ xxx_Test_ProtoFile_MessageDescs[15].Fields[5].MessageType = protoimpl.X.MessageTypeOf((*wrappers.FloatValue)(nil))
+ xxx_Test_ProtoFile_MessageDescs[15].Fields[6].MessageType = protoimpl.X.MessageTypeOf((*wrappers.DoubleValue)(nil))
+ xxx_Test_ProtoFile_MessageDescs[15].Fields[7].MessageType = protoimpl.X.MessageTypeOf((*wrappers.StringValue)(nil))
+ xxx_Test_ProtoFile_MessageDescs[15].Fields[8].MessageType = protoimpl.X.MessageTypeOf((*wrappers.BytesValue)(nil))
+ xxx_Test_ProtoFile_MessageDescs[15].Fields[9].MessageType = protoimpl.X.MessageTypeOf((*duration.Duration)(nil))
+ xxx_Test_ProtoFile_MessageDescs[15].Fields[10].MessageType = protoimpl.X.MessageTypeOf((*timestamp.Timestamp)(nil))
+ xxx_Test_ProtoFile_MessageDescs[15].Fields[11].MessageType = protoimpl.X.MessageTypeOf((*_struct.Struct)(nil))
+ xxx_Test_ProtoFile_MessageDescs[15].Fields[12].MessageType = protoimpl.X.MessageTypeOf((*_struct.ListValue)(nil))
+ xxx_Test_ProtoFile_MessageDescs[15].Fields[13].MessageType = protoimpl.X.MessageTypeOf((*_struct.Value)(nil))
+ xxx_Test_ProtoFile_MessageDescs[15].Fields[14].MessageType = protoimpl.X.MessageTypeOf((*empty.Empty)(nil))
+ xxx_Test_ProtoFile_MessageDescs[15].Fields[15].MessageType = protoimpl.X.MessageTypeOf((*any.Any)(nil))
+ xxx_Test_ProtoFile_MessageDescs[16].Fields[2].MessageType = xxx_Test_ProtoFile_MessageTypes[4].Type
+ xxx_Test_ProtoFile_MessageDescs[16].Fields[3].MessageType = xxx_Test_ProtoFile_MessageTypes[18].Type
+ xxx_Test_ProtoFile_MessageDescs[18].Fields[0].EnumType = xxx_Test_ProtoFile_EnumTypes[0]
+ xxx_Test_ProtoFile_MessageDescs[22].Fields[1].EnumType = xxx_Test_ProtoFile_EnumTypes[0]
+ xxx_Test_ProtoFile_MessageDescs[23].Fields[1].MessageType = xxx_Test_ProtoFile_MessageTypes[4].Type
+ xxx_Test_ProtoFile_MessageDescs[24].Fields[1].MessageType = xxx_Test_ProtoFile_MessageTypes[7].Type
+ xxx_Test_ProtoFile_MessageDescs[25].Fields[1].MessageType = xxx_Test_ProtoFile_MessageTypes[9].Type
var err error
Test_ProtoFile, err = prototype.NewFile(&xxx_Test_ProtoFile_FileDesc)
if err != nil {
@@ -1807,7 +2246,7 @@
},
},
}
-var xxx_Test_ProtoFile_MessageTypes = [22]protoimpl.MessageType{
+var xxx_Test_ProtoFile_MessageTypes = [26]protoimpl.MessageType{
{Type: prototype.GoMessage(
xxx_Test_ProtoFile_MessageDescs[0].Reference(),
func(protoreflect.MessageType) protoreflect.ProtoMessage {
@@ -1877,24 +2316,48 @@
{Type: prototype.GoMessage(
xxx_Test_ProtoFile_MessageDescs[11].Reference(),
func(protoreflect.MessageType) protoreflect.ProtoMessage {
- return new(KnownTypes)
+ return new(Extensions)
},
)},
{Type: prototype.GoMessage(
xxx_Test_ProtoFile_MessageDescs[12].Reference(),
func(protoreflect.MessageType) protoreflect.ProtoMessage {
- return new(Nests_OptGroup)
+ return new(ExtensionsContainer)
},
)},
{Type: prototype.GoMessage(
xxx_Test_ProtoFile_MessageDescs[13].Reference(),
func(protoreflect.MessageType) protoreflect.ProtoMessage {
- return new(Nests_RptGroup)
+ return new(MessageSet)
},
)},
{Type: prototype.GoMessage(
xxx_Test_ProtoFile_MessageDescs[14].Reference(),
func(protoreflect.MessageType) protoreflect.ProtoMessage {
+ return new(MessageSetExtension)
+ },
+ )},
+ {Type: prototype.GoMessage(
+ xxx_Test_ProtoFile_MessageDescs[15].Reference(),
+ func(protoreflect.MessageType) protoreflect.ProtoMessage {
+ return new(KnownTypes)
+ },
+ )},
+ {Type: prototype.GoMessage(
+ xxx_Test_ProtoFile_MessageDescs[16].Reference(),
+ func(protoreflect.MessageType) protoreflect.ProtoMessage {
+ return new(Nests_OptGroup)
+ },
+ )},
+ {Type: prototype.GoMessage(
+ xxx_Test_ProtoFile_MessageDescs[17].Reference(),
+ func(protoreflect.MessageType) protoreflect.ProtoMessage {
+ return new(Nests_RptGroup)
+ },
+ )},
+ {Type: prototype.GoMessage(
+ xxx_Test_ProtoFile_MessageDescs[18].Reference(),
+ func(protoreflect.MessageType) protoreflect.ProtoMessage {
return new(Nests_OptGroup_OptNestedGroup)
},
)},
@@ -1906,7 +2369,7 @@
{ /* no message type for Maps_StrToOneofsEntry */ },
{ /* no message type for IndirectRequired_StrToNestedEntry */ },
}
-var xxx_Test_ProtoFile_MessageDescs = [22]prototype.Message{
+var xxx_Test_ProtoFile_MessageDescs = [26]prototype.Message{
{
Name: "Scalars",
Fields: []prototype.Field{
@@ -2441,6 +2904,56 @@
},
},
{
+ Name: "Extensions",
+ Fields: []prototype.Field{
+ {
+ Name: "opt_string",
+ Number: 1,
+ Cardinality: protoreflect.Optional,
+ Kind: protoreflect.StringKind,
+ JSONName: "optString",
+ IsPacked: prototype.False,
+ },
+ {
+ Name: "opt_bool",
+ Number: 101,
+ Cardinality: protoreflect.Optional,
+ Kind: protoreflect.BoolKind,
+ JSONName: "optBool",
+ IsPacked: prototype.False,
+ },
+ {
+ Name: "opt_int32",
+ Number: 2,
+ Cardinality: protoreflect.Optional,
+ Kind: protoreflect.Int32Kind,
+ JSONName: "optInt32",
+ IsPacked: prototype.False,
+ },
+ },
+ ExtensionRanges: [][2]protoreflect.FieldNumber{{20, 101}},
+ },
+ {
+ Name: "ExtensionsContainer",
+ },
+ {
+ Name: "MessageSet",
+ ExtensionRanges: [][2]protoreflect.FieldNumber{{4, 2147483647}},
+ },
+ {
+ Name: "MessageSetExtension",
+ Fields: []prototype.Field{
+ {
+ Name: "opt_string",
+ Number: 1,
+ Cardinality: protoreflect.Optional,
+ Kind: protoreflect.StringKind,
+ JSONName: "optString",
+ IsPacked: prototype.False,
+ },
+ },
+ },
+ {
Name: "KnownTypes",
Fields: []prototype.Field{
{
diff --git a/encoding/textpb/testprotos/pb2/test.proto b/encoding/textpb/testprotos/pb2/test.proto
index 35f585b..861dd24 100644
--- a/encoding/textpb/testprotos/pb2/test.proto
+++ b/encoding/textpb/testprotos/pb2/test.proto
@@ -138,6 +138,7 @@
}
// Following messages are for testing required field nested in optional, repeated and map fields.
+
message NestedWithRequired {
required string req_string = 1;
}
@@ -148,6 +149,57 @@
map<string, NestedWithRequired> str_to_nested = 3;
}
+// Following messages are for testing extensions.
+
+message Extensions {
+ optional string opt_string = 1;
+ extensions 20 to 100;
+ optional bool opt_bool = 101;
+ optional int32 opt_int32 = 2;
+}
+
+extend Extensions {
+ optional bool opt_ext_bool = 21;
+ optional string opt_ext_string = 22;
+ optional Enum opt_ext_enum = 23;
+ optional Nested opt_ext_nested = 24;
+
+ repeated fixed32 rpt_ext_fixed32 = 31;
+ repeated Enum rpt_ext_enum = 32;
+ repeated Nested rpt_ext_nested = 33;
+}
+
+message ExtensionsContainer {
+ extend Extensions {
+ optional bool opt_ext_bool = 51;
+ optional string opt_ext_string = 52;
+ optional Enum opt_ext_enum = 53;
+ optional Nested opt_ext_nested = 54;
+
+ repeated string rpt_ext_string = 61;
+ repeated Enum rpt_ext_enum = 62;
+ repeated Nested rpt_ext_nested = 63;
+ }
+}
+
+// Following messages are for testing MessageSet.
+
+message MessageSet {
+ option message_set_wire_format = true;
+
+ extensions 4 to max;
+}
+
+message MessageSetExtension {
+ optional string opt_string = 1;
+
+ extend MessageSet {
+ optional MessageSetExtension message_set_extension = 10;
+ optional MessageSetExtension not_message_set_extension = 20;
+ optional Nested ext_nested = 30;
+ }
+}
+
// Message contains well-known type fields.
message KnownTypes {
optional google.protobuf.BoolValue opt_bool = 1;