Source File
legacy_extension.go
Belonging Package
google.golang.org/protobuf/internal/impl
package impl
import (
ptag
pref
preg
piface
)
func ( *ExtensionInfo) () {
:= .desc
var piface.MessageV1
:= .ContainingMessage().FullName()
var string
if := .ParentFile(); != nil {
= .Path()
}
:= .FullName()
if messageset.IsMessageSetExtension() {
= .Parent()
}
.ExtendedType =
.ExtensionType = reflect.Zero().Interface()
.Field = int32(.Number())
.Name = string()
.Tag = ptag.Marshal(, )
.Filename =
}
if .ExtendedType == nil || .ExtensionType == nil {
:= placeholderExtension{
name: pref.FullName(.Name),
number: pref.FieldNumber(.Field),
}
.desc = extensionTypeDescriptor{, }
return
}
var pref.EnumDescriptor
var pref.MessageDescriptor
:= reflect.TypeOf(.ExtensionType)
:= .Kind() == reflect.Ptr && .Elem().Kind() != reflect.Struct
:= .Kind() == reflect.Slice && .Elem().Kind() != reflect.Uint8
if || {
= .Elem()
}
switch v := reflect.Zero().Interface().(type) {
case pref.Enum:
= .Descriptor()
case enumV1:
= LegacyLoadEnumDesc()
case pref.ProtoMessage:
= .ProtoReflect().Descriptor()
case messageV1:
= LegacyLoadMessageDesc()
}
:= &filedesc.Extension{L2: new(filedesc.ExtensionL2)}
.L0.ParentFile = filedesc.SurrogateProto2
.L0.FullName = pref.FullName(.Name)
.L1.Number = pref.FieldNumber(.Field)
.L1.Cardinality = .L1.Cardinality
.L1.Kind = .L1.Kind
.L2.IsPacked = .L1.IsPacked
.L2.Default = .L1.Default
.L1.Extendee = Export{}.MessageDescriptorOf(.ExtendedType)
.L2.Enum =
.L2.Message =
if messageset.IsMessageSet(.L1.Extendee) && .FullName() == .L0.FullName {
.L0.FullName = .L0.FullName.Append(messageset.ExtensionName)
}
:= reflect.TypeOf(.ExtensionType)
if {
= .Elem()
}
.goType =
.desc = extensionTypeDescriptor{, }
}
type placeholderExtension struct {
name pref.FullName
number pref.FieldNumber
}
func ( placeholderExtension) () pref.FileDescriptor { return nil }
func ( placeholderExtension) () pref.Descriptor { return nil }
func ( placeholderExtension) () int { return 0 }
func ( placeholderExtension) () pref.Syntax { return 0 }
func ( placeholderExtension) () pref.Name { return .name.Name() }
func ( placeholderExtension) () pref.FullName { return .name }
func ( placeholderExtension) () bool { return true }
func ( placeholderExtension) () pref.ProtoMessage { return descopts.Field }
func ( placeholderExtension) () pref.FieldNumber { return .number }
func ( placeholderExtension) () pref.Cardinality { return 0 }
func ( placeholderExtension) () pref.Kind { return 0 }
func ( placeholderExtension) () bool { return false }
func ( placeholderExtension) () string { return "" }
func ( placeholderExtension) () bool { return false }
func ( placeholderExtension) () bool { return false }
func ( placeholderExtension) () bool { return true }
func ( placeholderExtension) () bool { return false }
func ( placeholderExtension) () bool { return false }
func ( placeholderExtension) () bool { return false }
func ( placeholderExtension) () bool { return false }
func ( placeholderExtension) () pref.FieldDescriptor { return nil }
func ( placeholderExtension) () pref.FieldDescriptor { return nil }
func ( placeholderExtension) () bool { return false }
func ( placeholderExtension) () pref.Value { return pref.Value{} }
func ( placeholderExtension) () pref.EnumValueDescriptor { return nil }
func ( placeholderExtension) () pref.OneofDescriptor { return nil }
func ( placeholderExtension) () pref.MessageDescriptor { return nil }
func ( placeholderExtension) () pref.EnumDescriptor { return nil }
func ( placeholderExtension) () pref.MessageDescriptor { return nil }
func ( placeholderExtension) (pref.FieldDescriptor) { return }
![]() |
The pages are generated with Golds v0.3.2-preview. (GOOS=darwin GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |