mirror of
https://github.com/protocolbuffers/protobuf-go.git
synced 2025-04-15 23:42:22 +00:00
internal/impl: rename MessageType as MessageInfo
The name MessageType is easily confused with protoreflect.MessageType. Rename it as MessageInfo, which follows the pattern set by v1, where the equivalent data structure is called InternalMessageInfo. Change-Id: I535956e1f7c6e9b07e9585e889d5e93388d0d2ce Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/178478 Reviewed-by: Damien Neil <dneil@google.com>
This commit is contained in:
parent
63bdd1f864
commit
4fe9663f4c
@ -117,7 +117,7 @@ func file_grpc_grpc_proto_rawDescGZIP() []byte {
|
||||
return file_grpc_grpc_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_grpc_grpc_proto_msgTypes = make([]protoimpl.MessageType, 2)
|
||||
var file_grpc_grpc_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||
var file_grpc_grpc_proto_goTypes = []interface{}{
|
||||
(*Request)(nil), // 0: goproto.protoc.grpc.Request
|
||||
(*Response)(nil), // 1: goproto.protoc.grpc.Response
|
||||
|
@ -28,7 +28,7 @@ func genReflectFileDescriptor(gen *protogen.Plugin, g *protogen.GeneratedFile, f
|
||||
g.P("var ", enumTypesVarName(f), " = make([]", protoreflectPackage.Ident("EnumType"), ",", len(f.allEnums), ")")
|
||||
}
|
||||
if len(f.allMessages) > 0 {
|
||||
g.P("var ", messageTypesVarName(f), " = make([]", protoimplPackage.Ident("MessageType"), ",", len(f.allMessages), ")")
|
||||
g.P("var ", messageTypesVarName(f), " = make([]", protoimplPackage.Ident("MessageInfo"), ",", len(f.allMessages), ")")
|
||||
}
|
||||
|
||||
// Generate a unique list of Go types for all declarations and dependencies,
|
||||
|
@ -139,7 +139,7 @@ func file_annotations_annotations_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_annotations_annotations_proto_enumTypes = make([]protoreflect.EnumType, 1)
|
||||
var file_annotations_annotations_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_annotations_annotations_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_annotations_annotations_proto_goTypes = []interface{}{
|
||||
(AnnotationsTestEnum)(0), // 0: goproto.protoc.annotations.AnnotationsTestEnum
|
||||
(*AnnotationsTestMessage)(nil), // 1: goproto.protoc.annotations.AnnotationsTestMessage
|
||||
|
@ -275,7 +275,7 @@ func file_comments_comments_proto_rawDescGZIP() []byte {
|
||||
return file_comments_comments_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_comments_comments_proto_msgTypes = make([]protoimpl.MessageType, 6)
|
||||
var file_comments_comments_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
|
||||
var file_comments_comments_proto_goTypes = []interface{}{
|
||||
(*Message1)(nil), // 0: goproto.protoc.comments.Message1
|
||||
(*Message2)(nil), // 1: goproto.protoc.comments.Message2
|
||||
|
@ -129,7 +129,7 @@ func file_comments_deprecated_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_comments_deprecated_proto_enumTypes = make([]protoreflect.EnumType, 1)
|
||||
var file_comments_deprecated_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_comments_deprecated_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_comments_deprecated_proto_goTypes = []interface{}{
|
||||
(DeprecatedEnum)(0), // 0: goproto.protoc.comments.DeprecatedEnum
|
||||
(*DeprecatedMessage)(nil), // 1: goproto.protoc.comments.DeprecatedMessage
|
||||
|
@ -132,7 +132,7 @@ func file_extensions_base_base_proto_rawDescGZIP() []byte {
|
||||
return file_extensions_base_base_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_extensions_base_base_proto_msgTypes = make([]protoimpl.MessageType, 2)
|
||||
var file_extensions_base_base_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||
var file_extensions_base_base_proto_goTypes = []interface{}{
|
||||
(*BaseMessage)(nil), // 0: goproto.protoc.extension.base.BaseMessage
|
||||
(*MessageSetWireFormatMessage)(nil), // 1: goproto.protoc.extension.base.MessageSetWireFormatMessage
|
||||
|
@ -1156,7 +1156,7 @@ func file_extensions_ext_ext_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_extensions_ext_ext_proto_enumTypes = make([]protoreflect.EnumType, 1)
|
||||
var file_extensions_ext_ext_proto_msgTypes = make([]protoimpl.MessageType, 8)
|
||||
var file_extensions_ext_ext_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
|
||||
var file_extensions_ext_ext_proto_goTypes = []interface{}{
|
||||
(Enum)(0), // 0: goproto.protoc.extension.ext.Enum
|
||||
(*Message)(nil), // 1: goproto.protoc.extension.ext.Message
|
||||
|
@ -78,7 +78,7 @@ func file_extensions_extra_extra_proto_rawDescGZIP() []byte {
|
||||
return file_extensions_extra_extra_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_extensions_extra_extra_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_extensions_extra_extra_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_extensions_extra_extra_proto_goTypes = []interface{}{
|
||||
(*ExtraMessage)(nil), // 0: goproto.protoc.extension.extra.ExtraMessage
|
||||
}
|
||||
|
@ -687,7 +687,7 @@ func file_extensions_proto3_ext3_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_extensions_proto3_ext3_proto_enumTypes = make([]protoreflect.EnumType, 1)
|
||||
var file_extensions_proto3_ext3_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_extensions_proto3_ext3_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_extensions_proto3_ext3_proto_goTypes = []interface{}{
|
||||
(Enum)(0), // 0: goproto.protoc.extension.proto3.Enum
|
||||
(*Message)(nil), // 1: goproto.protoc.extension.proto3.Message
|
||||
|
@ -372,7 +372,7 @@ func file_fieldnames_fieldnames_proto_rawDescGZIP() []byte {
|
||||
return file_fieldnames_fieldnames_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_fieldnames_fieldnames_proto_msgTypes = make([]protoimpl.MessageType, 2)
|
||||
var file_fieldnames_fieldnames_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||
var file_fieldnames_fieldnames_proto_goTypes = []interface{}{
|
||||
(*Message)(nil), // 0: goproto.protoc.fieldnames.Message
|
||||
(*Message_OneofMessageConflict)(nil), // 1: goproto.protoc.fieldnames.Message.OneofMessageConflict
|
||||
|
@ -144,7 +144,7 @@ func file_import_public_a_proto_rawDescGZIP() []byte {
|
||||
return file_import_public_a_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_import_public_a_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_import_public_a_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_import_public_a_proto_goTypes = []interface{}{
|
||||
(*Public)(nil), // 0: goproto.protoc.import_public.Public
|
||||
(*sub.M)(nil), // 1: goproto.protoc.import_public.sub.M
|
||||
|
@ -93,7 +93,7 @@ func file_import_public_b_proto_rawDescGZIP() []byte {
|
||||
return file_import_public_b_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_import_public_b_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_import_public_b_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_import_public_b_proto_goTypes = []interface{}{
|
||||
(*Local)(nil), // 0: goproto.protoc.import_public.Local
|
||||
(*sub.M)(nil), // 1: goproto.protoc.import_public.sub.M
|
||||
|
@ -98,7 +98,7 @@ func file_import_public_c_proto_rawDescGZIP() []byte {
|
||||
return file_import_public_c_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_import_public_c_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_import_public_c_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_import_public_c_proto_goTypes = []interface{}{
|
||||
(*UsingPublicImport)(nil), // 0: goproto.protoc.import_public.UsingPublicImport
|
||||
(*Local)(nil), // 1: goproto.protoc.import_public.Local
|
||||
|
@ -463,7 +463,7 @@ func file_import_public_sub_a_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_import_public_sub_a_proto_enumTypes = make([]protoreflect.EnumType, 3)
|
||||
var file_import_public_sub_a_proto_msgTypes = make([]protoimpl.MessageType, 2)
|
||||
var file_import_public_sub_a_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||
var file_import_public_sub_a_proto_goTypes = []interface{}{
|
||||
(E)(0), // 0: goproto.protoc.import_public.sub.E
|
||||
(M_Subenum)(0), // 1: goproto.protoc.import_public.sub.M.Subenum
|
||||
|
@ -68,7 +68,7 @@ func file_import_public_sub_b_proto_rawDescGZIP() []byte {
|
||||
return file_import_public_sub_b_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_import_public_sub_b_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_import_public_sub_b_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_import_public_sub_b_proto_goTypes = []interface{}{
|
||||
(*M2)(nil), // 0: goproto.protoc.import_public.sub.M2
|
||||
}
|
||||
|
@ -69,7 +69,7 @@ func file_import_public_sub2_a_proto_rawDescGZIP() []byte {
|
||||
return file_import_public_sub2_a_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_import_public_sub2_a_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_import_public_sub2_a_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_import_public_sub2_a_proto_goTypes = []interface{}{
|
||||
(*Sub2Message)(nil), // 0: goproto.protoc.import_public.sub2.Sub2Message
|
||||
}
|
||||
|
@ -66,7 +66,7 @@ func file_imports_fmt_m_proto_rawDescGZIP() []byte {
|
||||
return file_imports_fmt_m_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_imports_fmt_m_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_imports_fmt_m_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_imports_fmt_m_proto_goTypes = []interface{}{
|
||||
(*M)(nil), // 0: fmt.M
|
||||
}
|
||||
|
@ -153,7 +153,7 @@ func file_imports_test_a_1_m1_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_imports_test_a_1_m1_proto_enumTypes = make([]protoreflect.EnumType, 1)
|
||||
var file_imports_test_a_1_m1_proto_msgTypes = make([]protoimpl.MessageType, 2)
|
||||
var file_imports_test_a_1_m1_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||
var file_imports_test_a_1_m1_proto_goTypes = []interface{}{
|
||||
(E1)(0), // 0: test.a.E1
|
||||
(*M1)(nil), // 1: test.a.M1
|
||||
|
@ -67,7 +67,7 @@ func file_imports_test_a_1_m2_proto_rawDescGZIP() []byte {
|
||||
return file_imports_test_a_1_m2_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_imports_test_a_1_m2_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_imports_test_a_1_m2_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_imports_test_a_1_m2_proto_goTypes = []interface{}{
|
||||
(*M2)(nil), // 0: test.a.M2
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ func file_imports_test_a_2_m3_proto_rawDescGZIP() []byte {
|
||||
return file_imports_test_a_2_m3_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_imports_test_a_2_m3_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_imports_test_a_2_m3_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_imports_test_a_2_m3_proto_goTypes = []interface{}{
|
||||
(*M3)(nil), // 0: test.a.M3
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ func file_imports_test_a_2_m4_proto_rawDescGZIP() []byte {
|
||||
return file_imports_test_a_2_m4_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_imports_test_a_2_m4_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_imports_test_a_2_m4_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_imports_test_a_2_m4_proto_goTypes = []interface{}{
|
||||
(*M4)(nil), // 0: test.a.M4
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ func file_imports_test_b_1_m1_proto_rawDescGZIP() []byte {
|
||||
return file_imports_test_b_1_m1_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_imports_test_b_1_m1_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_imports_test_b_1_m1_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_imports_test_b_1_m1_proto_goTypes = []interface{}{
|
||||
(*M1)(nil), // 0: test.b.part1.M1
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ func file_imports_test_b_1_m2_proto_rawDescGZIP() []byte {
|
||||
return file_imports_test_b_1_m2_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_imports_test_b_1_m2_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_imports_test_b_1_m2_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_imports_test_b_1_m2_proto_goTypes = []interface{}{
|
||||
(*M2)(nil), // 0: test.b.part2.M2
|
||||
}
|
||||
|
@ -79,7 +79,7 @@ func file_imports_test_import_a1m1_proto_rawDescGZIP() []byte {
|
||||
return file_imports_test_import_a1m1_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_imports_test_import_a1m1_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_imports_test_import_a1m1_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_imports_test_import_a1m1_proto_goTypes = []interface{}{
|
||||
(*A1M1)(nil), // 0: test.A1M1
|
||||
(*test_a_1.M1)(nil), // 1: test.a.M1
|
||||
|
@ -79,7 +79,7 @@ func file_imports_test_import_a1m2_proto_rawDescGZIP() []byte {
|
||||
return file_imports_test_import_a1m2_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_imports_test_import_a1m2_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_imports_test_import_a1m2_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_imports_test_import_a1m2_proto_goTypes = []interface{}{
|
||||
(*A1M2)(nil), // 0: test.A1M2
|
||||
(*test_a_1.M2)(nil), // 1: test.a.M2
|
||||
|
@ -132,7 +132,7 @@ func file_imports_test_import_all_proto_rawDescGZIP() []byte {
|
||||
return file_imports_test_import_all_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_imports_test_import_all_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_imports_test_import_all_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_imports_test_import_all_proto_goTypes = []interface{}{
|
||||
(*All)(nil), // 0: test.All
|
||||
(*test_a_1.M1)(nil), // 1: test.a.M1
|
||||
|
@ -99,7 +99,7 @@ func file_issue780_oneof_conflict_test_proto_rawDescGZIP() []byte {
|
||||
return file_issue780_oneof_conflict_test_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_issue780_oneof_conflict_test_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_issue780_oneof_conflict_test_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_issue780_oneof_conflict_test_proto_goTypes = []interface{}{
|
||||
(*Foo)(nil), // 0: oneoftest.Foo
|
||||
}
|
||||
|
@ -141,7 +141,7 @@ func file_nopackage_nopackage_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_nopackage_nopackage_proto_enumTypes = make([]protoreflect.EnumType, 1)
|
||||
var file_nopackage_nopackage_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_nopackage_nopackage_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_nopackage_nopackage_proto_goTypes = []interface{}{
|
||||
(Enum)(0), // 0: Enum
|
||||
(*Message)(nil), // 1: Message
|
||||
|
2
cmd/protoc-gen-go/testdata/proto2/enum.pb.go
vendored
2
cmd/protoc-gen-go/testdata/proto2/enum.pb.go
vendored
@ -484,7 +484,7 @@ func file_proto2_enum_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_proto2_enum_proto_enumTypes = make([]protoreflect.EnumType, 6)
|
||||
var file_proto2_enum_proto_msgTypes = make([]protoimpl.MessageType, 2)
|
||||
var file_proto2_enum_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||
var file_proto2_enum_proto_goTypes = []interface{}{
|
||||
(EnumType1)(0), // 0: goproto.protoc.proto2.EnumType1
|
||||
(EnumType2)(0), // 1: goproto.protoc.proto2.EnumType2
|
||||
|
@ -1688,7 +1688,7 @@ func file_proto2_fields_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_proto2_fields_proto_enumTypes = make([]protoreflect.EnumType, 1)
|
||||
var file_proto2_fields_proto_msgTypes = make([]protoimpl.MessageType, 9)
|
||||
var file_proto2_fields_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
|
||||
var file_proto2_fields_proto_goTypes = []interface{}{
|
||||
(FieldTestMessage_Enum)(0), // 0: goproto.protoc.proto2.FieldTestMessage.Enum
|
||||
(*FieldTestMessage)(nil), // 1: goproto.protoc.proto2.FieldTestMessage
|
||||
|
@ -162,7 +162,7 @@ func file_proto2_nested_messages_proto_rawDescGZIP() []byte {
|
||||
return file_proto2_nested_messages_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_proto2_nested_messages_proto_msgTypes = make([]protoimpl.MessageType, 3)
|
||||
var file_proto2_nested_messages_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
|
||||
var file_proto2_nested_messages_proto_goTypes = []interface{}{
|
||||
(*Layer1)(nil), // 0: goproto.protoc.proto2.Layer1
|
||||
(*Layer1_Layer2)(nil), // 1: goproto.protoc.proto2.Layer1.Layer2
|
||||
|
@ -87,7 +87,7 @@ func file_proto2_proto2_proto_rawDescGZIP() []byte {
|
||||
return file_proto2_proto2_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_proto2_proto2_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_proto2_proto2_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_proto2_proto2_proto_goTypes = []interface{}{
|
||||
(*Message)(nil), // 0: goproto.protoc.proto2.Message
|
||||
}
|
||||
|
@ -578,7 +578,7 @@ func file_proto3_fields_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_proto3_fields_proto_enumTypes = make([]protoreflect.EnumType, 1)
|
||||
var file_proto3_fields_proto_msgTypes = make([]protoimpl.MessageType, 5)
|
||||
var file_proto3_fields_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
|
||||
var file_proto3_fields_proto_goTypes = []interface{}{
|
||||
(FieldTestMessage_Enum)(0), // 0: goproto.protoc.proto3.FieldTestMessage.Enum
|
||||
(*FieldTestMessage)(nil), // 1: goproto.protoc.proto3.FieldTestMessage
|
||||
|
@ -1947,7 +1947,7 @@ func file_pb2_test_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_pb2_test_proto_enumTypes = make([]protoreflect.EnumType, 2)
|
||||
var file_pb2_test_proto_msgTypes = make([]protoimpl.MessageType, 20)
|
||||
var file_pb2_test_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
|
||||
var file_pb2_test_proto_goTypes = []interface{}{
|
||||
(Enum)(0), // 0: pb2.Enum
|
||||
(Enums_NestedEnum)(0), // 1: pb2.Enums.NestedEnum
|
||||
|
@ -726,7 +726,7 @@ func file_pb3_test_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_pb3_test_proto_enumTypes = make([]protoreflect.EnumType, 2)
|
||||
var file_pb3_test_proto_msgTypes = make([]protoimpl.MessageType, 12)
|
||||
var file_pb3_test_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
|
||||
var file_pb3_test_proto_goTypes = []interface{}{
|
||||
(Enum)(0), // 0: pb3.Enum
|
||||
(Enums_NestedEnum)(0), // 1: pb3.Enums.NestedEnum
|
||||
|
@ -111,7 +111,7 @@ type FileBuilder struct {
|
||||
// MessageOutputTypes is where Init stores all initialized message types
|
||||
// in "flattened ordering". This includes slots for map entry messages,
|
||||
// which are skipped over.
|
||||
MessageOutputTypes []pimpl.MessageType
|
||||
MessageOutputTypes []pimpl.MessageInfo
|
||||
// ExtensionOutputTypes is where Init stores all initialized extension types
|
||||
// in "flattened ordering".
|
||||
ExtensionOutputTypes []pref.ExtensionType
|
||||
|
@ -15,7 +15,7 @@ type extensionFieldInfo struct {
|
||||
funcs ifaceCoderFuncs
|
||||
}
|
||||
|
||||
func (mi *MessageType) extensionFieldInfo(desc *piface.ExtensionDescV1) *extensionFieldInfo {
|
||||
func (mi *MessageInfo) extensionFieldInfo(desc *piface.ExtensionDescV1) *extensionFieldInfo {
|
||||
// As of this time (Go 1.12, linux/amd64), an RWMutex benchmarks as faster
|
||||
// than a sync.Map.
|
||||
mi.extensionFieldInfosMu.RLock()
|
||||
|
@ -49,11 +49,11 @@ func (o marshalOptions) Deterministic() bool { return o&marshalDeterministic !=
|
||||
func (o marshalOptions) UseCachedSize() bool { return o&marshalUseCachedSize != 0 }
|
||||
|
||||
// size is protoreflect.Methods.Size.
|
||||
func (mi *MessageType) size(msg pref.ProtoMessage) (size int) {
|
||||
func (mi *MessageInfo) size(msg pref.ProtoMessage) (size int) {
|
||||
return mi.sizePointer(pointerOfIface(msg), 0)
|
||||
}
|
||||
|
||||
func (mi *MessageType) sizePointer(p pointer, opts marshalOptions) (size int) {
|
||||
func (mi *MessageInfo) sizePointer(p pointer, opts marshalOptions) (size int) {
|
||||
mi.init()
|
||||
if p.IsNil() {
|
||||
return 0
|
||||
@ -64,7 +64,7 @@ func (mi *MessageType) sizePointer(p pointer, opts marshalOptions) (size int) {
|
||||
return mi.sizePointerSlow(p, opts)
|
||||
}
|
||||
|
||||
func (mi *MessageType) sizePointerSlow(p pointer, opts marshalOptions) (size int) {
|
||||
func (mi *MessageInfo) sizePointerSlow(p pointer, opts marshalOptions) (size int) {
|
||||
if mi.extensionOffset.IsValid() {
|
||||
e := p.Apply(mi.extensionOffset).Extensions()
|
||||
size += mi.sizeExtensions(e, opts)
|
||||
@ -90,11 +90,11 @@ func (mi *MessageType) sizePointerSlow(p pointer, opts marshalOptions) (size int
|
||||
}
|
||||
|
||||
// marshalAppend is protoreflect.Methods.MarshalAppend.
|
||||
func (mi *MessageType) marshalAppend(b []byte, msg pref.ProtoMessage, opts piface.MarshalOptions) ([]byte, error) {
|
||||
func (mi *MessageInfo) marshalAppend(b []byte, msg pref.ProtoMessage, opts piface.MarshalOptions) ([]byte, error) {
|
||||
return mi.marshalAppendPointer(b, pointerOfIface(msg), newMarshalOptions(opts))
|
||||
}
|
||||
|
||||
func (mi *MessageType) marshalAppendPointer(b []byte, p pointer, opts marshalOptions) ([]byte, error) {
|
||||
func (mi *MessageInfo) marshalAppendPointer(b []byte, p pointer, opts marshalOptions) ([]byte, error) {
|
||||
mi.init()
|
||||
if p.IsNil() {
|
||||
return b, nil
|
||||
@ -130,7 +130,7 @@ func (mi *MessageType) marshalAppendPointer(b []byte, p pointer, opts marshalOpt
|
||||
return b, nerr.E
|
||||
}
|
||||
|
||||
func (mi *MessageType) sizeExtensions(ext *legacyExtensionMap, opts marshalOptions) (n int) {
|
||||
func (mi *MessageInfo) sizeExtensions(ext *legacyExtensionMap, opts marshalOptions) (n int) {
|
||||
if ext == nil {
|
||||
return 0
|
||||
}
|
||||
@ -144,7 +144,7 @@ func (mi *MessageType) sizeExtensions(ext *legacyExtensionMap, opts marshalOptio
|
||||
return n
|
||||
}
|
||||
|
||||
func (mi *MessageType) appendExtensions(b []byte, ext *legacyExtensionMap, opts marshalOptions) ([]byte, error) {
|
||||
func (mi *MessageInfo) appendExtensions(b []byte, ext *legacyExtensionMap, opts marshalOptions) ([]byte, error) {
|
||||
if ext == nil {
|
||||
return b, nil
|
||||
}
|
||||
|
@ -70,13 +70,13 @@ func makeOneofFieldCoder(fs reflect.StructField, od pref.OneofDescriptor, struct
|
||||
}
|
||||
|
||||
func makeMessageFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointerCoderFuncs {
|
||||
if fi, ok := getMessageType(ft); ok {
|
||||
if fi, ok := getMessageInfo(ft); ok {
|
||||
return pointerCoderFuncs{
|
||||
size: func(p pointer, tagsize int, opts marshalOptions) int {
|
||||
return sizeMessageType(p, fi, tagsize, opts)
|
||||
return sizeMessageInfo(p, fi, tagsize, opts)
|
||||
},
|
||||
marshal: func(b []byte, p pointer, wiretag uint64, opts marshalOptions) ([]byte, error) {
|
||||
return appendMessageType(b, p, wiretag, fi, opts)
|
||||
return appendMessageInfo(b, p, wiretag, fi, opts)
|
||||
},
|
||||
}
|
||||
} else {
|
||||
@ -93,11 +93,11 @@ func makeMessageFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointerCode
|
||||
}
|
||||
}
|
||||
|
||||
func sizeMessageType(p pointer, mi *MessageType, tagsize int, opts marshalOptions) int {
|
||||
func sizeMessageInfo(p pointer, mi *MessageInfo, tagsize int, opts marshalOptions) int {
|
||||
return wire.SizeBytes(mi.sizePointer(p.Elem(), opts)) + tagsize
|
||||
}
|
||||
|
||||
func appendMessageType(b []byte, p pointer, wiretag uint64, mi *MessageType, opts marshalOptions) ([]byte, error) {
|
||||
func appendMessageInfo(b []byte, p pointer, wiretag uint64, mi *MessageInfo, opts marshalOptions) ([]byte, error) {
|
||||
b = wire.AppendVarint(b, wiretag)
|
||||
b = wire.AppendVarint(b, uint64(mi.sizePointer(p.Elem(), opts)))
|
||||
return mi.marshalAppendPointer(b, p.Elem(), opts)
|
||||
@ -129,7 +129,7 @@ var coderMessageIface = ifaceCoderFuncs{
|
||||
}
|
||||
|
||||
func makeGroupFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointerCoderFuncs {
|
||||
if fi, ok := getMessageType(ft); ok {
|
||||
if fi, ok := getMessageInfo(ft); ok {
|
||||
return pointerCoderFuncs{
|
||||
size: func(p pointer, tagsize int, opts marshalOptions) int {
|
||||
return sizeGroupType(p, fi, tagsize, opts)
|
||||
@ -152,11 +152,11 @@ func makeGroupFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointerCoderF
|
||||
}
|
||||
}
|
||||
|
||||
func sizeGroupType(p pointer, mi *MessageType, tagsize int, opts marshalOptions) int {
|
||||
func sizeGroupType(p pointer, mi *MessageInfo, tagsize int, opts marshalOptions) int {
|
||||
return 2*tagsize + mi.sizePointer(p.Elem(), opts)
|
||||
}
|
||||
|
||||
func appendGroupType(b []byte, p pointer, wiretag uint64, mi *MessageType, opts marshalOptions) ([]byte, error) {
|
||||
func appendGroupType(b []byte, p pointer, wiretag uint64, mi *MessageInfo, opts marshalOptions) ([]byte, error) {
|
||||
b = wire.AppendVarint(b, wiretag) // start group
|
||||
b, err := mi.marshalAppendPointer(b, p.Elem(), opts)
|
||||
b = wire.AppendVarint(b, wiretag+1) // end group
|
||||
@ -190,7 +190,7 @@ var coderGroupIface = ifaceCoderFuncs{
|
||||
}
|
||||
|
||||
func makeMessageSliceFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointerCoderFuncs {
|
||||
if fi, ok := getMessageType(ft); ok {
|
||||
if fi, ok := getMessageInfo(ft); ok {
|
||||
return pointerCoderFuncs{
|
||||
marshal: func(b []byte, p pointer, wiretag uint64, opts marshalOptions) ([]byte, error) {
|
||||
return appendMessageSliceInfo(b, p, wiretag, fi, opts)
|
||||
@ -210,7 +210,7 @@ func makeMessageSliceFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointe
|
||||
}
|
||||
}
|
||||
|
||||
func sizeMessageSliceInfo(p pointer, mi *MessageType, tagsize int, opts marshalOptions) int {
|
||||
func sizeMessageSliceInfo(p pointer, mi *MessageInfo, tagsize int, opts marshalOptions) int {
|
||||
s := p.PointerSlice()
|
||||
n := 0
|
||||
for _, v := range s {
|
||||
@ -219,7 +219,7 @@ func sizeMessageSliceInfo(p pointer, mi *MessageType, tagsize int, opts marshalO
|
||||
return n
|
||||
}
|
||||
|
||||
func appendMessageSliceInfo(b []byte, p pointer, wiretag uint64, mi *MessageType, opts marshalOptions) ([]byte, error) {
|
||||
func appendMessageSliceInfo(b []byte, p pointer, wiretag uint64, mi *MessageInfo, opts marshalOptions) ([]byte, error) {
|
||||
s := p.PointerSlice()
|
||||
var nerr errors.NonFatal
|
||||
var err error
|
||||
@ -280,7 +280,7 @@ var coderMessageSliceIface = ifaceCoderFuncs{
|
||||
}
|
||||
|
||||
func makeGroupSliceFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointerCoderFuncs {
|
||||
if fi, ok := getMessageType(ft); ok {
|
||||
if fi, ok := getMessageInfo(ft); ok {
|
||||
return pointerCoderFuncs{
|
||||
size: func(p pointer, tagsize int, opts marshalOptions) int {
|
||||
return sizeGroupSliceInfo(p, fi, tagsize, opts)
|
||||
@ -326,7 +326,7 @@ func appendGroupSlice(b []byte, p pointer, wiretag uint64, messageType reflect.T
|
||||
return b, nerr.E
|
||||
}
|
||||
|
||||
func sizeGroupSliceInfo(p pointer, mi *MessageType, tagsize int, opts marshalOptions) int {
|
||||
func sizeGroupSliceInfo(p pointer, mi *MessageInfo, tagsize int, opts marshalOptions) int {
|
||||
s := p.PointerSlice()
|
||||
n := 0
|
||||
for _, v := range s {
|
||||
@ -335,7 +335,7 @@ func sizeGroupSliceInfo(p pointer, mi *MessageType, tagsize int, opts marshalOpt
|
||||
return n
|
||||
}
|
||||
|
||||
func appendGroupSliceInfo(b []byte, p pointer, wiretag uint64, mi *MessageType, opts marshalOptions) ([]byte, error) {
|
||||
func appendGroupSliceInfo(b []byte, p pointer, wiretag uint64, mi *MessageInfo, opts marshalOptions) ([]byte, error) {
|
||||
s := p.PointerSlice()
|
||||
var nerr errors.NonFatal
|
||||
var err error
|
||||
|
@ -18,10 +18,10 @@ import (
|
||||
piface "google.golang.org/protobuf/runtime/protoiface"
|
||||
)
|
||||
|
||||
// MessageType provides protobuf related functionality for a given Go type
|
||||
// that represents a message. A given instance of MessageType is tied to
|
||||
// MessageInfo provides protobuf related functionality for a given Go type
|
||||
// that represents a message. A given instance of MessageInfo is tied to
|
||||
// exactly one Go type, which must be a pointer to a struct type.
|
||||
type MessageType struct {
|
||||
type MessageInfo struct {
|
||||
// GoType is the underlying message Go type and must be populated.
|
||||
// Once set, this field must never be mutated.
|
||||
GoType reflect.Type // pointer to struct
|
||||
@ -53,13 +53,13 @@ type MessageType struct {
|
||||
|
||||
var prefMessageType = reflect.TypeOf((*pref.Message)(nil)).Elem()
|
||||
|
||||
// getMessageType returns the MessageType (if any) for a type.
|
||||
// getMessageInfo returns the MessageInfo (if any) for a type.
|
||||
//
|
||||
// We find the MessageType by calling the ProtoReflect method on the type's
|
||||
// We find the MessageInfo by calling the ProtoReflect method on the type's
|
||||
// zero value and looking at the returned type to see if it is a
|
||||
// messageReflectWrapper. Note that the MessageType may still be uninitialized
|
||||
// messageReflectWrapper. Note that the MessageInfo may still be uninitialized
|
||||
// at this point.
|
||||
func getMessageType(mt reflect.Type) (mi *MessageType, ok bool) {
|
||||
func getMessageInfo(mt reflect.Type) (mi *MessageInfo, ok bool) {
|
||||
method, ok := mt.MethodByName("ProtoReflect")
|
||||
if !ok {
|
||||
return nil, false
|
||||
@ -75,7 +75,7 @@ func getMessageType(mt reflect.Type) (mi *MessageType, ok bool) {
|
||||
return m.mi, true
|
||||
}
|
||||
|
||||
func (mi *MessageType) init() {
|
||||
func (mi *MessageInfo) init() {
|
||||
// This function is called in the hot path. Inline the sync.Once
|
||||
// logic, since allocating a closure for Once.Do is expensive.
|
||||
// Keep init small to ensure that it can be inlined.
|
||||
@ -85,7 +85,7 @@ func (mi *MessageType) init() {
|
||||
mi.initOnce()
|
||||
}
|
||||
|
||||
func (mi *MessageType) initOnce() {
|
||||
func (mi *MessageInfo) initOnce() {
|
||||
mi.initMu.Lock()
|
||||
defer mi.initMu.Unlock()
|
||||
if mi.initDone == 1 {
|
||||
@ -108,7 +108,7 @@ func (mi *MessageType) initOnce() {
|
||||
|
||||
var sizecacheType = reflect.TypeOf(int32(0))
|
||||
|
||||
func (mi *MessageType) makeMethods(t reflect.Type) {
|
||||
func (mi *MessageInfo) makeMethods(t reflect.Type) {
|
||||
mi.extensionOffset = invalidOffset
|
||||
if fx, _ := t.FieldByName("XXX_InternalExtensions"); fx.Type == extType {
|
||||
mi.extensionOffset = offsetOf(fx)
|
||||
@ -135,7 +135,7 @@ type structInfo struct {
|
||||
oneofWrappersByNumber map[pref.FieldNumber]reflect.Type
|
||||
}
|
||||
|
||||
func (mi *MessageType) makeStructInfo(t reflect.Type) structInfo {
|
||||
func (mi *MessageInfo) makeStructInfo(t reflect.Type) structInfo {
|
||||
// Generate a mapping of field numbers and names to Go struct field or type.
|
||||
si := structInfo{
|
||||
fieldsByNumber: map[pref.FieldNumber]reflect.StructField{},
|
||||
@ -186,7 +186,7 @@ fieldLoop:
|
||||
//
|
||||
// This code assumes that the struct is well-formed and panics if there are
|
||||
// any discrepancies.
|
||||
func (mi *MessageType) makeKnownFieldsFunc(si structInfo) {
|
||||
func (mi *MessageInfo) makeKnownFieldsFunc(si structInfo) {
|
||||
mi.fields = map[pref.FieldNumber]*fieldInfo{}
|
||||
mi.fieldsOrdered = make([]*fieldInfo, 0, mi.PBType.Fields().Len())
|
||||
for i := 0; i < mi.PBType.Descriptor().Fields().Len(); i++ {
|
||||
@ -230,7 +230,7 @@ func (mi *MessageType) makeKnownFieldsFunc(si structInfo) {
|
||||
}
|
||||
}
|
||||
|
||||
func (mi *MessageType) makeUnknownFieldsFunc(t reflect.Type) {
|
||||
func (mi *MessageInfo) makeUnknownFieldsFunc(t reflect.Type) {
|
||||
if f := makeLegacyUnknownFieldsFunc(t); f != nil {
|
||||
mi.unknownFields = f
|
||||
return
|
||||
@ -240,7 +240,7 @@ func (mi *MessageType) makeUnknownFieldsFunc(t reflect.Type) {
|
||||
}
|
||||
}
|
||||
|
||||
func (mi *MessageType) makeExtensionFieldsFunc(t reflect.Type) {
|
||||
func (mi *MessageInfo) makeExtensionFieldsFunc(t reflect.Type) {
|
||||
if f := makeLegacyExtensionFieldsFunc(t); f != nil {
|
||||
mi.extensionFields = f
|
||||
return
|
||||
@ -250,16 +250,16 @@ func (mi *MessageType) makeExtensionFieldsFunc(t reflect.Type) {
|
||||
}
|
||||
}
|
||||
|
||||
func (mi *MessageType) MessageOf(p interface{}) pref.Message {
|
||||
func (mi *MessageInfo) MessageOf(p interface{}) pref.Message {
|
||||
return (*messageReflectWrapper)(mi.dataTypeOf(p))
|
||||
}
|
||||
|
||||
func (mi *MessageType) Methods() *piface.Methods {
|
||||
func (mi *MessageInfo) Methods() *piface.Methods {
|
||||
mi.init()
|
||||
return &mi.methods
|
||||
}
|
||||
|
||||
func (mi *MessageType) dataTypeOf(p interface{}) *messageDataType {
|
||||
func (mi *MessageInfo) dataTypeOf(p interface{}) *messageDataType {
|
||||
// TODO: Remove this check? This API is primarily used by generated code,
|
||||
// and should not violate this assumption. Leave this check in for now to
|
||||
// provide some sanity checks during development. This can be removed if
|
||||
@ -273,14 +273,14 @@ func (mi *MessageType) dataTypeOf(p interface{}) *messageDataType {
|
||||
// messageDataType is a tuple of a pointer to the message data and
|
||||
// a pointer to the message type.
|
||||
//
|
||||
// TODO: Unfortunately, we need to close over a pointer and MessageType,
|
||||
// TODO: Unfortunately, we need to close over a pointer and MessageInfo,
|
||||
// which incurs an an allocation. This pair is similar to a Go interface,
|
||||
// which is essentially a tuple of the same thing. We can make this efficient
|
||||
// with reflect.NamedOf (see https://golang.org/issues/16522).
|
||||
//
|
||||
// With that hypothetical API, we could dynamically create a new named type
|
||||
// that has the same underlying type as MessageType.GoType, and
|
||||
// dynamically create methods that close over MessageType.
|
||||
// that has the same underlying type as MessageInfo.GoType, and
|
||||
// dynamically create methods that close over MessageInfo.
|
||||
// Since the new type would have the same underlying type, we could directly
|
||||
// convert between pointers of those types, giving us an efficient way to swap
|
||||
// out the method set.
|
||||
@ -290,7 +290,7 @@ func (mi *MessageType) dataTypeOf(p interface{}) *messageDataType {
|
||||
// 2. generate more types and methods, at the expense of binary size increase.
|
||||
type messageDataType struct {
|
||||
p pointer
|
||||
mi *MessageType
|
||||
mi *MessageInfo
|
||||
}
|
||||
|
||||
type messageReflectWrapper messageDataType
|
||||
|
@ -45,7 +45,7 @@ func makeLegacyExtensionMapFunc(t reflect.Type) func(*messageDataType) *legacyEx
|
||||
}
|
||||
|
||||
type legacyExtensionFields struct {
|
||||
mi *MessageType
|
||||
mi *MessageInfo
|
||||
x *legacyExtensionMap
|
||||
}
|
||||
|
||||
|
@ -189,7 +189,7 @@ type (
|
||||
MapBytes map[MyString]MyBytes
|
||||
)
|
||||
|
||||
var scalarProto2Type = pimpl.MessageType{GoType: reflect.TypeOf(new(ScalarProto2)), PBType: ptype.GoMessage(
|
||||
var scalarProto2Type = pimpl.MessageInfo{GoType: reflect.TypeOf(new(ScalarProto2)), PBType: ptype.GoMessage(
|
||||
mustMakeMessageDesc(ptype.StandaloneMessage{
|
||||
Syntax: pref.Proto2,
|
||||
FullName: "ScalarProto2",
|
||||
@ -304,7 +304,7 @@ type ScalarProto3 struct {
|
||||
MyBytesA MyString `protobuf:"22"`
|
||||
}
|
||||
|
||||
var scalarProto3Type = pimpl.MessageType{GoType: reflect.TypeOf(new(ScalarProto3)), PBType: ptype.GoMessage(
|
||||
var scalarProto3Type = pimpl.MessageInfo{GoType: reflect.TypeOf(new(ScalarProto3)), PBType: ptype.GoMessage(
|
||||
mustMakeMessageDesc(ptype.StandaloneMessage{
|
||||
Syntax: pref.Proto3,
|
||||
FullName: "ScalarProto3",
|
||||
@ -437,7 +437,7 @@ type ListScalars struct {
|
||||
MyBytes4 ListStrings `protobuf:"19"`
|
||||
}
|
||||
|
||||
var listScalarsType = pimpl.MessageType{GoType: reflect.TypeOf(new(ListScalars)), PBType: ptype.GoMessage(
|
||||
var listScalarsType = pimpl.MessageInfo{GoType: reflect.TypeOf(new(ListScalars)), PBType: ptype.GoMessage(
|
||||
mustMakeMessageDesc(ptype.StandaloneMessage{
|
||||
Syntax: pref.Proto2,
|
||||
FullName: "ListScalars",
|
||||
@ -628,7 +628,7 @@ func mustMakeMapEntry(n pref.FieldNumber, keyKind, valKind pref.Kind) ptype.Fiel
|
||||
}
|
||||
}
|
||||
|
||||
var mapScalarsType = pimpl.MessageType{GoType: reflect.TypeOf(new(MapScalars)), PBType: ptype.GoMessage(
|
||||
var mapScalarsType = pimpl.MessageInfo{GoType: reflect.TypeOf(new(MapScalars)), PBType: ptype.GoMessage(
|
||||
mustMakeMessageDesc(ptype.StandaloneMessage{
|
||||
Syntax: pref.Proto2,
|
||||
FullName: "MapScalars",
|
||||
@ -807,7 +807,7 @@ type OneofScalars struct {
|
||||
Union isOneofScalars_Union `protobuf_oneof:"union"`
|
||||
}
|
||||
|
||||
var oneofScalarsType = pimpl.MessageType{GoType: reflect.TypeOf(new(OneofScalars)), PBType: ptype.GoMessage(
|
||||
var oneofScalarsType = pimpl.MessageInfo{GoType: reflect.TypeOf(new(OneofScalars)), PBType: ptype.GoMessage(
|
||||
mustMakeMessageDesc(ptype.StandaloneMessage{
|
||||
Syntax: pref.Proto2,
|
||||
FullName: "OneofScalars",
|
||||
@ -1031,7 +1031,7 @@ type EnumMessages struct {
|
||||
Union isEnumMessages_Union `protobuf_oneof:"union"`
|
||||
}
|
||||
|
||||
var enumMessagesType = pimpl.MessageType{GoType: reflect.TypeOf(new(EnumMessages)), PBType: ptype.GoMessage(
|
||||
var enumMessagesType = pimpl.MessageInfo{GoType: reflect.TypeOf(new(EnumMessages)), PBType: ptype.GoMessage(
|
||||
mustMakeMessageDesc(ptype.StandaloneMessage{
|
||||
Syntax: pref.Proto2,
|
||||
FullName: "EnumMessages",
|
||||
|
@ -34,7 +34,7 @@ func (Export) MessageOf(m interface{}) pvalue.LegacyMessage {
|
||||
}
|
||||
|
||||
func (Export) MessageTypeOf(m interface{}) pref.MessageType {
|
||||
return loadMessageType(reflect.TypeOf(m)).PBType
|
||||
return loadMessageInfo(reflect.TypeOf(m)).PBType
|
||||
}
|
||||
|
||||
func (Export) MessageDescriptorOf(m interface{}) pref.MessageDescriptor {
|
||||
|
@ -20,30 +20,30 @@ import (
|
||||
// wrapMessage wraps v as a protoreflect.ProtoMessage,
|
||||
// where v must be a *struct kind and not implement the v2 API already.
|
||||
func wrapMessage(v reflect.Value) pref.ProtoMessage {
|
||||
mt := loadMessageType(v.Type())
|
||||
mt := loadMessageInfo(v.Type())
|
||||
return mt.MessageOf(v.Interface()).Interface()
|
||||
}
|
||||
|
||||
var messageTypeCache sync.Map // map[reflect.Type]*MessageType
|
||||
var messageTypeCache sync.Map // map[reflect.Type]*MessageInfo
|
||||
|
||||
// loadMessageType dynamically loads a *MessageType for t,
|
||||
// loadMessageInfo dynamically loads a *MessageInfo for t,
|
||||
// where t must be a *struct kind and not implement the v2 API already.
|
||||
func loadMessageType(t reflect.Type) *pimpl.MessageType {
|
||||
// Fast-path: check if a MessageType is cached for this concrete type.
|
||||
func loadMessageInfo(t reflect.Type) *pimpl.MessageInfo {
|
||||
// Fast-path: check if a MessageInfo is cached for this concrete type.
|
||||
if mt, ok := messageTypeCache.Load(t); ok {
|
||||
return mt.(*pimpl.MessageType)
|
||||
return mt.(*pimpl.MessageInfo)
|
||||
}
|
||||
|
||||
// Slow-path: derive message descriptor and initialize MessageType.
|
||||
// Slow-path: derive message descriptor and initialize MessageInfo.
|
||||
md := LoadMessageDesc(t)
|
||||
mt := new(pimpl.MessageType)
|
||||
mt := new(pimpl.MessageInfo)
|
||||
mt.GoType = t
|
||||
mt.PBType = ptype.GoMessage(md, func(pref.MessageType) pref.Message {
|
||||
p := reflect.New(t.Elem()).Interface()
|
||||
return mt.MessageOf(p)
|
||||
})
|
||||
if mt, ok := messageTypeCache.LoadOrStore(t, mt); ok {
|
||||
return mt.(*pimpl.MessageType)
|
||||
return mt.(*pimpl.MessageInfo)
|
||||
}
|
||||
return mt
|
||||
}
|
||||
|
@ -667,7 +667,7 @@ func file_conformance_conformance_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_conformance_conformance_proto_enumTypes = make([]protoreflect.EnumType, 2)
|
||||
var file_conformance_conformance_proto_msgTypes = make([]protoimpl.MessageType, 4)
|
||||
var file_conformance_conformance_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
|
||||
var file_conformance_conformance_proto_goTypes = []interface{}{
|
||||
(WireFormat)(0), // 0: conformance.WireFormat
|
||||
(TestCategory)(0), // 1: conformance.TestCategory
|
||||
|
@ -1826,7 +1826,7 @@ func file_google_protobuf_test_messages_proto2_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_google_protobuf_test_messages_proto2_proto_enumTypes = make([]protoreflect.EnumType, 2)
|
||||
var file_google_protobuf_test_messages_proto2_proto_msgTypes = make([]protoimpl.MessageType, 26)
|
||||
var file_google_protobuf_test_messages_proto2_proto_msgTypes = make([]protoimpl.MessageInfo, 26)
|
||||
var file_google_protobuf_test_messages_proto2_proto_goTypes = []interface{}{
|
||||
(ForeignEnumProto2)(0), // 0: protobuf_test_messages.proto2.ForeignEnumProto2
|
||||
(TestAllTypesProto2_NestedEnum)(0), // 1: protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum
|
||||
|
@ -2040,7 +2040,7 @@ func file_google_protobuf_test_messages_proto3_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_google_protobuf_test_messages_proto3_proto_enumTypes = make([]protoreflect.EnumType, 3)
|
||||
var file_google_protobuf_test_messages_proto3_proto_msgTypes = make([]protoimpl.MessageType, 22)
|
||||
var file_google_protobuf_test_messages_proto3_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
|
||||
var file_google_protobuf_test_messages_proto3_proto_goTypes = []interface{}{
|
||||
(ForeignEnum)(0), // 0: protobuf_test_messages.proto3.ForeignEnum
|
||||
(TestAllTypesProto3_NestedEnum)(0), // 1: protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum
|
||||
|
@ -258,7 +258,7 @@ func file_legacy_legacy_proto_rawDescGZIP() []byte {
|
||||
return file_legacy_legacy_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_legacy_legacy_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_legacy_legacy_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_legacy_legacy_proto_goTypes = []interface{}{
|
||||
(*Legacy)(nil), // 0: google.golang.org.Legacy
|
||||
(*proto2_v0_0.Message)(nil), // 1: google.golang.org.proto2_20160225.Message
|
||||
|
@ -3314,7 +3314,7 @@ func file_test_test_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_test_test_proto_enumTypes = make([]protoreflect.EnumType, 4)
|
||||
var file_test_test_proto_msgTypes = make([]protoimpl.MessageType, 37)
|
||||
var file_test_test_proto_msgTypes = make([]protoimpl.MessageInfo, 37)
|
||||
var file_test_test_proto_goTypes = []interface{}{
|
||||
(ForeignEnum)(0), // 0: goproto.proto.test.ForeignEnum
|
||||
(TestReservedEnumFields)(0), // 1: goproto.proto.test.TestReservedEnumFields
|
||||
|
@ -124,7 +124,7 @@ func file_test_test_import_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_test_test_import_proto_enumTypes = make([]protoreflect.EnumType, 1)
|
||||
var file_test_test_import_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_test_test_import_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_test_test_import_proto_goTypes = []interface{}{
|
||||
(ImportEnum)(0), // 0: goproto.proto.test.ImportEnum
|
||||
(*ImportMessage)(nil), // 1: goproto.proto.test.ImportMessage
|
||||
|
@ -67,7 +67,7 @@ func file_test_test_public_proto_rawDescGZIP() []byte {
|
||||
return file_test_test_public_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_test_test_public_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_test_test_public_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_test_test_public_proto_goTypes = []interface{}{
|
||||
(*PublicImportMessage)(nil), // 0: goproto.proto.test.PublicImportMessage
|
||||
}
|
||||
|
@ -77,7 +77,7 @@ func file_test_weak_test_weak_proto_rawDescGZIP() []byte {
|
||||
return file_test_weak_test_weak_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_test_weak_test_weak_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_test_weak_test_weak_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_test_weak_test_weak_proto_goTypes = []interface{}{
|
||||
(*WeakImportMessage)(nil), // 0: goproto.proto.test.weak.WeakImportMessage
|
||||
}
|
||||
|
@ -1271,7 +1271,7 @@ func file_test3_test_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_test3_test_proto_enumTypes = make([]protoreflect.EnumType, 2)
|
||||
var file_test3_test_proto_msgTypes = make([]protoimpl.MessageType, 20)
|
||||
var file_test3_test_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
|
||||
var file_test3_test_proto_goTypes = []interface{}{
|
||||
(ForeignEnum)(0), // 0: goproto.proto.test3.ForeignEnum
|
||||
(TestAllTypes_NestedEnum)(0), // 1: goproto.proto.test3.TestAllTypes.NestedEnum
|
||||
|
@ -114,7 +114,7 @@ func file_test3_test_import_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_test3_test_import_proto_enumTypes = make([]protoreflect.EnumType, 1)
|
||||
var file_test3_test_import_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_test3_test_import_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_test3_test_import_proto_goTypes = []interface{}{
|
||||
(ImportEnum)(0), // 0: goproto.proto.test3.ImportEnum
|
||||
(*ImportMessage)(nil), // 1: goproto.proto.test3.ImportMessage
|
||||
|
@ -437,7 +437,7 @@ func file_test_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_test_proto_enumTypes = make([]protoreflect.EnumType, 3)
|
||||
var file_test_proto_msgTypes = make([]protoimpl.MessageType, 4)
|
||||
var file_test_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
|
||||
var file_test_proto_goTypes = []interface{}{
|
||||
(Enum1)(0), // 0: testprotos.Enum1
|
||||
(Enum2)(0), // 1: testprotos.Enum2
|
||||
|
@ -38,7 +38,7 @@ type (
|
||||
// integer overflow failure when evaluating the uint constant.
|
||||
EnforceVersion uint
|
||||
|
||||
MessageType = impl.MessageType
|
||||
MessageInfo = impl.MessageInfo
|
||||
FileBuilder = fileinit.FileBuilder
|
||||
|
||||
// TODO: Change these to more efficient data structures.
|
||||
|
@ -3223,7 +3223,7 @@ func file_google_protobuf_descriptor_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_google_protobuf_descriptor_proto_enumTypes = make([]protoreflect.EnumType, 6)
|
||||
var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageType, 27)
|
||||
var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 27)
|
||||
var file_google_protobuf_descriptor_proto_goTypes = []interface{}{
|
||||
(FieldDescriptorProto_Type)(0), // 0: google.protobuf.FieldDescriptorProto.Type
|
||||
(FieldDescriptorProto_Label)(0), // 1: google.protobuf.FieldDescriptorProto.Label
|
||||
|
@ -201,7 +201,7 @@ func file_google_protobuf_any_proto_rawDescGZIP() []byte {
|
||||
return file_google_protobuf_any_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_google_protobuf_any_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_google_protobuf_any_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_google_protobuf_any_proto_goTypes = []interface{}{
|
||||
(*Any)(nil), // 0: google.protobuf.Any
|
||||
}
|
||||
|
@ -432,7 +432,7 @@ func file_google_protobuf_api_proto_rawDescGZIP() []byte {
|
||||
return file_google_protobuf_api_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_google_protobuf_api_proto_msgTypes = make([]protoimpl.MessageType, 3)
|
||||
var file_google_protobuf_api_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
|
||||
var file_google_protobuf_api_proto_goTypes = []interface{}{
|
||||
(*Api)(nil), // 0: google.protobuf.Api
|
||||
(*Method)(nil), // 1: google.protobuf.Method
|
||||
|
@ -162,7 +162,7 @@ func file_google_protobuf_duration_proto_rawDescGZIP() []byte {
|
||||
return file_google_protobuf_duration_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_google_protobuf_duration_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_google_protobuf_duration_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_google_protobuf_duration_proto_goTypes = []interface{}{
|
||||
(*Duration)(nil), // 0: google.protobuf.Duration
|
||||
}
|
||||
|
@ -82,7 +82,7 @@ func file_google_protobuf_empty_proto_rawDescGZIP() []byte {
|
||||
return file_google_protobuf_empty_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_google_protobuf_empty_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_google_protobuf_empty_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_google_protobuf_empty_proto_goTypes = []interface{}{
|
||||
(*Empty)(nil), // 0: google.protobuf.Empty
|
||||
}
|
||||
|
@ -282,7 +282,7 @@ func file_google_protobuf_field_mask_proto_rawDescGZIP() []byte {
|
||||
return file_google_protobuf_field_mask_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_google_protobuf_field_mask_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_google_protobuf_field_mask_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_google_protobuf_field_mask_proto_goTypes = []interface{}{
|
||||
(*FieldMask)(nil), // 0: google.protobuf.FieldMask
|
||||
}
|
||||
|
@ -87,7 +87,7 @@ func file_google_protobuf_source_context_proto_rawDescGZIP() []byte {
|
||||
return file_google_protobuf_source_context_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_google_protobuf_source_context_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_google_protobuf_source_context_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_google_protobuf_source_context_proto_goTypes = []interface{}{
|
||||
(*SourceContext)(nil), // 0: google.protobuf.SourceContext
|
||||
}
|
||||
|
@ -374,7 +374,7 @@ func file_google_protobuf_struct_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_google_protobuf_struct_proto_enumTypes = make([]protoreflect.EnumType, 1)
|
||||
var file_google_protobuf_struct_proto_msgTypes = make([]protoimpl.MessageType, 4)
|
||||
var file_google_protobuf_struct_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
|
||||
var file_google_protobuf_struct_proto_goTypes = []interface{}{
|
||||
(NullValue)(0), // 0: google.protobuf.NullValue
|
||||
(*Struct)(nil), // 1: google.protobuf.Struct
|
||||
|
@ -182,7 +182,7 @@ func file_google_protobuf_timestamp_proto_rawDescGZIP() []byte {
|
||||
return file_google_protobuf_timestamp_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_google_protobuf_timestamp_proto_msgTypes = make([]protoimpl.MessageType, 1)
|
||||
var file_google_protobuf_timestamp_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_google_protobuf_timestamp_proto_goTypes = []interface{}{
|
||||
(*Timestamp)(nil), // 0: google.protobuf.Timestamp
|
||||
}
|
||||
|
@ -767,7 +767,7 @@ func file_google_protobuf_type_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_google_protobuf_type_proto_enumTypes = make([]protoreflect.EnumType, 3)
|
||||
var file_google_protobuf_type_proto_msgTypes = make([]protoimpl.MessageType, 5)
|
||||
var file_google_protobuf_type_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
|
||||
var file_google_protobuf_type_proto_goTypes = []interface{}{
|
||||
(Syntax)(0), // 0: google.protobuf.Syntax
|
||||
(Field_Kind)(0), // 1: google.protobuf.Field.Kind
|
||||
|
@ -450,7 +450,7 @@ func file_google_protobuf_wrappers_proto_rawDescGZIP() []byte {
|
||||
return file_google_protobuf_wrappers_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_google_protobuf_wrappers_proto_msgTypes = make([]protoimpl.MessageType, 9)
|
||||
var file_google_protobuf_wrappers_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
|
||||
var file_google_protobuf_wrappers_proto_goTypes = []interface{}{
|
||||
(*DoubleValue)(nil), // 0: google.protobuf.DoubleValue
|
||||
(*FloatValue)(nil), // 1: google.protobuf.FloatValue
|
||||
|
@ -380,7 +380,7 @@ func file_google_protobuf_compiler_plugin_proto_rawDescGZIP() []byte {
|
||||
return file_google_protobuf_compiler_plugin_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_google_protobuf_compiler_plugin_proto_msgTypes = make([]protoimpl.MessageType, 4)
|
||||
var file_google_protobuf_compiler_plugin_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
|
||||
var file_google_protobuf_compiler_plugin_proto_goTypes = []interface{}{
|
||||
(*Version)(nil), // 0: google.protobuf.compiler.Version
|
||||
(*CodeGeneratorRequest)(nil), // 1: google.protobuf.compiler.CodeGeneratorRequest
|
||||
|
Loading…
x
Reference in New Issue
Block a user