Source File
build.go
Belonging Package
google.golang.org/protobuf/internal/filedesc
TypeResolver interface {
preg.ExtensionTypeResolver
}
FileRegistry interface {
FindFileByPath(string) (protoreflect.FileDescriptor, error)
FindDescriptorByName(pref.FullName) (pref.Descriptor, error)
RegisterFile(pref.FileDescriptor) error
}
}
type resolverByIndex interface {
FindEnumByIndex(int32, int32, []Enum, []Message) pref.EnumDescriptor
FindMessageByIndex(int32, int32, []Enum, []Message) pref.MessageDescriptor
}
type Out struct {
File pref.FileDescriptor
if .NumEnums+.NumMessages+.NumExtensions+.NumServices == 0 {
.unmarshalCounts(.RawDescriptor, true)
}
if .TypeResolver == nil {
.TypeResolver = preg.GlobalTypes
}
if .FileRegistry == nil {
.FileRegistry = preg.GlobalFiles
}
:= newRawFile()
.File =
.Enums = .allEnums
.Messages = .allMessages
.Extensions = .allExtensions
.Services = .allServices
if := .FileRegistry.RegisterFile(); != nil {
panic()
}
return
}
func ( *Builder) ( []byte, bool) {
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case protowire.BytesType:
, := protowire.ConsumeBytes()
= [:]
if {
switch {
case genid.FileDescriptorProto_EnumType_field_number:
.NumEnums++
case genid.FileDescriptorProto_MessageType_field_number:
.(, false)
.NumMessages++
case genid.FileDescriptorProto_Extension_field_number:
.NumExtensions++
case genid.FileDescriptorProto_Service_field_number:
.NumServices++
}
} else {
switch {
case genid.DescriptorProto_EnumType_field_number:
.NumEnums++
case genid.DescriptorProto_NestedType_field_number:
.(, false)
.NumMessages++
case genid.DescriptorProto_Extension_field_number:
.NumExtensions++
}
}
default:
:= protowire.ConsumeFieldValue(, , )
= [:]
}
}
![]() |
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. |