package filedesc
import (
)
func ( *File) () {
.unmarshalFull(.builder.RawDescriptor)
.resolveMessages()
.resolveExtensions()
.resolveServices()
}
func ( *File) () {
var int32
for := range .allMessages {
:= &.allMessages[]
for := range .L2.Fields.List {
:= &.L2.Fields.List[]
if .L1.IsWeak {
continue
}
switch .L1.Kind {
case protoreflect.EnumKind:
.L1.Enum = .resolveEnumDependency(.L1.Enum, listFieldDeps, )
++
case protoreflect.MessageKind, protoreflect.GroupKind:
.L1.Message = .resolveMessageDependency(.L1.Message, listFieldDeps, )
++
}
if := .L1.Default.val; .IsValid() {
.L1.Default = unmarshalDefault(.Bytes(), .L1.Kind, , .L1.Enum)
}
}
}
}
func ( *File) () {
var int32
for := range .allExtensions {
:= &.allExtensions[]
switch .L1.Kind {
case protoreflect.EnumKind:
.L2.Enum = .resolveEnumDependency(.L2.Enum, listExtDeps, )
++
case protoreflect.MessageKind, protoreflect.GroupKind:
.L2.Message = .resolveMessageDependency(.L2.Message, listExtDeps, )
++
}
if := .L2.Default.val; .IsValid() {
.L2.Default = unmarshalDefault(.Bytes(), .L1.Kind, , .L2.Enum)
}
}
}
func ( *File) () {
var int32
for := range .allServices {
:= &.allServices[]
for := range .L2.Methods.List {
:= &.L2.Methods.List[]
.L1.Input = .resolveMessageDependency(.L1.Input, listMethInDeps, )
.L1.Output = .resolveMessageDependency(.L1.Output, listMethOutDeps, )
++
}
}
}
func ( *File) ( protoreflect.EnumDescriptor, , int32) protoreflect.EnumDescriptor {
:= .builder.FileRegistry
if , := .(resolverByIndex); {
if := .FindEnumByIndex(, , .allEnums, .allMessages); != nil {
return
}
}
for := range .allEnums {
if := &.allEnums[]; .L0.FullName == .FullName() {
return
}
}
if , := .FindDescriptorByName(.FullName()); != nil {
return .(protoreflect.EnumDescriptor)
}
return
}
func ( *File) ( protoreflect.MessageDescriptor, , int32) protoreflect.MessageDescriptor {
:= .builder.FileRegistry
if , := .(resolverByIndex); {
if := .FindMessageByIndex(, , .allEnums, .allMessages); != nil {
return
}
}
for := range .allMessages {
if := &.allMessages[]; .L0.FullName == .FullName() {
return
}
}
if , := .FindDescriptorByName(.FullName()); != nil {
return .(protoreflect.MessageDescriptor)
}
return
}
func ( *File) ( []byte) {
:= getBuilder()
defer putBuilder()
var , , , int
var []byte
.L2 = new(FileL2)
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case protowire.VarintType:
, := protowire.ConsumeVarint()
= [:]
switch {
case genid.FileDescriptorProto_PublicDependency_field_number:
.L2.Imports[].IsPublic = true
case genid.FileDescriptorProto_WeakDependency_field_number:
.L2.Imports[].IsWeak = true
}
case protowire.BytesType:
, := protowire.ConsumeBytes()
= [:]
switch {
case genid.FileDescriptorProto_Dependency_field_number:
:= .MakeString()
, := .builder.FileRegistry.FindFileByPath()
if == nil {
= PlaceholderFile()
}
.L2.Imports = append(.L2.Imports, protoreflect.FileImport{FileDescriptor: })
case genid.FileDescriptorProto_EnumType_field_number:
.L1.Enums.List[].unmarshalFull(, )
++
case genid.FileDescriptorProto_MessageType_field_number:
.L1.Messages.List[].unmarshalFull(, )
++
case genid.FileDescriptorProto_Extension_field_number:
.L1.Extensions.List[].unmarshalFull(, )
++
case genid.FileDescriptorProto_Service_field_number:
.L1.Services.List[].unmarshalFull(, )
++
case genid.FileDescriptorProto_Options_field_number:
= appendOptions(, )
}
default:
:= protowire.ConsumeFieldValue(, , )
= [:]
}
}
.L2.Options = .builder.optionsUnmarshaler(&descopts.File, )
}
func ( *Enum) ( []byte, *strs.Builder) {
var [][]byte
var []byte
if !.L1.eagerValues {
.L2 = new(EnumL2)
}
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case protowire.BytesType:
, := protowire.ConsumeBytes()
= [:]
switch {
case genid.EnumDescriptorProto_Value_field_number:
= append(, )
case genid.EnumDescriptorProto_ReservedName_field_number:
.L2.ReservedNames.List = append(.L2.ReservedNames.List, protoreflect.Name(.MakeString()))
case genid.EnumDescriptorProto_ReservedRange_field_number:
.L2.ReservedRanges.List = append(.L2.ReservedRanges.List, unmarshalEnumReservedRange())
case genid.EnumDescriptorProto_Options_field_number:
= appendOptions(, )
}
default:
:= protowire.ConsumeFieldValue(, , )
= [:]
}
}
if !.L1.eagerValues && len() > 0 {
.L2.Values.List = make([]EnumValue, len())
for , := range {
.L2.Values.List[].unmarshalFull(, , .L0.ParentFile, , )
}
}
.L2.Options = .L0.ParentFile.builder.optionsUnmarshaler(&descopts.Enum, )
}
func ( []byte) ( [2]protoreflect.EnumNumber) {
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case protowire.VarintType:
, := protowire.ConsumeVarint()
= [:]
switch {
case genid.EnumDescriptorProto_EnumReservedRange_Start_field_number:
[0] = protoreflect.EnumNumber()
case genid.EnumDescriptorProto_EnumReservedRange_End_field_number:
[1] = protoreflect.EnumNumber()
}
default:
:= protowire.ConsumeFieldValue(, , )
= [:]
}
}
return
}
func ( *EnumValue) ( []byte, *strs.Builder, *File, protoreflect.Descriptor, int) {
.L0.ParentFile =
.L0.Parent =
.L0.Index =
var []byte
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case protowire.VarintType:
, := protowire.ConsumeVarint()
= [:]
switch {
case genid.EnumValueDescriptorProto_Number_field_number:
.L1.Number = protoreflect.EnumNumber()
}
case protowire.BytesType:
, := protowire.ConsumeBytes()
= [:]
switch {
case genid.EnumValueDescriptorProto_Name_field_number:
.L0.FullName = appendFullName(, .Parent().FullName(), )
case genid.EnumValueDescriptorProto_Options_field_number:
= appendOptions(, )
}
default:
:= protowire.ConsumeFieldValue(, , )
= [:]
}
}
.L1.Options = .builder.optionsUnmarshaler(&descopts.EnumValue, )
}
func ( *Message) ( []byte, *strs.Builder) {
var , [][]byte
var , , int
var []byte
.L2 = new(MessageL2)
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case protowire.BytesType:
, := protowire.ConsumeBytes()
= [:]
switch {
case genid.DescriptorProto_Field_field_number:
= append(, )
case genid.DescriptorProto_OneofDecl_field_number:
= append(, )
case genid.DescriptorProto_ReservedName_field_number:
.L2.ReservedNames.List = append(.L2.ReservedNames.List, protoreflect.Name(.MakeString()))
case genid.DescriptorProto_ReservedRange_field_number:
.L2.ReservedRanges.List = append(.L2.ReservedRanges.List, unmarshalMessageReservedRange())
case genid.DescriptorProto_ExtensionRange_field_number:
, := unmarshalMessageExtensionRange()
:= .L0.ParentFile.builder.optionsUnmarshaler(&descopts.ExtensionRange, )
.L2.ExtensionRanges.List = append(.L2.ExtensionRanges.List, )
.L2.ExtensionRangeOptions = append(.L2.ExtensionRangeOptions, )
case genid.DescriptorProto_EnumType_field_number:
.L1.Enums.List[].unmarshalFull(, )
++
case genid.DescriptorProto_NestedType_field_number:
.L1.Messages.List[].(, )
++
case genid.DescriptorProto_Extension_field_number:
.L1.Extensions.List[].unmarshalFull(, )
++
case genid.DescriptorProto_Options_field_number:
.unmarshalOptions()
= appendOptions(, )
}
default:
:= protowire.ConsumeFieldValue(, , )
= [:]
}
}
if len() > 0 || len() > 0 {
.L2.Fields.List = make([]Field, len())
.L2.Oneofs.List = make([]Oneof, len())
for , := range {
:= &.L2.Fields.List[]
.unmarshalFull(, , .L0.ParentFile, , )
if .L1.Cardinality == protoreflect.Required {
.L2.RequiredNumbers.List = append(.L2.RequiredNumbers.List, .L1.Number)
}
}
for , := range {
:= &.L2.Oneofs.List[]
.unmarshalFull(, , .L0.ParentFile, , )
}
}
.L2.Options = .L0.ParentFile.builder.optionsUnmarshaler(&descopts.Message, )
}
func ( *Message) ( []byte) {
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case protowire.VarintType:
, := protowire.ConsumeVarint()
= [:]
switch {
case genid.MessageOptions_MapEntry_field_number:
.L1.IsMapEntry = protowire.DecodeBool()
case genid.MessageOptions_MessageSetWireFormat_field_number:
.L1.IsMessageSet = protowire.DecodeBool()
}
default:
:= protowire.ConsumeFieldValue(, , )
= [:]
}
}
}
func ( []byte) ( [2]protoreflect.FieldNumber) {
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case protowire.VarintType:
, := protowire.ConsumeVarint()
= [:]
switch {
case genid.DescriptorProto_ReservedRange_Start_field_number:
[0] = protoreflect.FieldNumber()
case genid.DescriptorProto_ReservedRange_End_field_number:
[1] = protoreflect.FieldNumber()
}
default:
:= protowire.ConsumeFieldValue(, , )
= [:]
}
}
return
}
func ( []byte) ( [2]protoreflect.FieldNumber, []byte) {
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case protowire.VarintType:
, := protowire.ConsumeVarint()
= [:]
switch {
case genid.DescriptorProto_ExtensionRange_Start_field_number:
[0] = protoreflect.FieldNumber()
case genid.DescriptorProto_ExtensionRange_End_field_number:
[1] = protoreflect.FieldNumber()
}
case protowire.BytesType:
, := protowire.ConsumeBytes()
= [:]
switch {
case genid.DescriptorProto_ExtensionRange_Options_field_number:
= appendOptions(, )
}
default:
:= protowire.ConsumeFieldValue(, , )
= [:]
}
}
return ,
}
func ( *Field) ( []byte, *strs.Builder, *File, protoreflect.Descriptor, int) {
.L0.ParentFile =
.L0.Parent =
.L0.Index =
var []byte
var []byte
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case protowire.VarintType:
, := protowire.ConsumeVarint()
= [:]
switch {
case genid.FieldDescriptorProto_Number_field_number:
.L1.Number = protoreflect.FieldNumber()
case genid.FieldDescriptorProto_Label_field_number:
.L1.Cardinality = protoreflect.Cardinality()
case genid.FieldDescriptorProto_Type_field_number:
.L1.Kind = protoreflect.Kind()
case genid.FieldDescriptorProto_OneofIndex_field_number:
:= &.(*Message).L2.Oneofs.List[]
.L1.Fields.List = append(.L1.Fields.List, )
if .L1.ContainingOneof != nil {
panic("oneof type already set")
}
.L1.ContainingOneof =
case genid.FieldDescriptorProto_Proto3Optional_field_number:
.L1.IsProto3Optional = protowire.DecodeBool()
}
case protowire.BytesType:
, := protowire.ConsumeBytes()
= [:]
switch {
case genid.FieldDescriptorProto_Name_field_number:
.L0.FullName = appendFullName(, .FullName(), )
case genid.FieldDescriptorProto_JsonName_field_number:
.L1.StringName.InitJSON(.MakeString())
case genid.FieldDescriptorProto_DefaultValue_field_number:
.L1.Default.val = protoreflect.ValueOfBytes()
case genid.FieldDescriptorProto_TypeName_field_number:
=
case genid.FieldDescriptorProto_Options_field_number:
.unmarshalOptions()
= appendOptions(, )
}
default:
:= protowire.ConsumeFieldValue(, , )
= [:]
}
}
if != nil {
:= makeFullName(, )
switch .L1.Kind {
case protoreflect.EnumKind:
.L1.Enum = PlaceholderEnum()
case protoreflect.MessageKind, protoreflect.GroupKind:
.L1.Message = PlaceholderMessage()
}
}
.L1.Options = .builder.optionsUnmarshaler(&descopts.Field, )
}
func ( *Field) ( []byte) {
const = 13
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case protowire.VarintType:
, := protowire.ConsumeVarint()
= [:]
switch {
case genid.FieldOptions_Packed_field_number:
.L1.HasPacked = true
.L1.IsPacked = protowire.DecodeBool()
case genid.FieldOptions_Weak_field_number:
.L1.IsWeak = protowire.DecodeBool()
case :
.L1.HasEnforceUTF8 = true
.L1.EnforceUTF8 = protowire.DecodeBool()
}
default:
:= protowire.ConsumeFieldValue(, , )
= [:]
}
}
}
func ( *Oneof) ( []byte, *strs.Builder, *File, protoreflect.Descriptor, int) {
.L0.ParentFile =
.L0.Parent =
.L0.Index =
var []byte
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case protowire.BytesType:
, := protowire.ConsumeBytes()
= [:]
switch {
case genid.OneofDescriptorProto_Name_field_number:
.L0.FullName = appendFullName(, .FullName(), )
case genid.OneofDescriptorProto_Options_field_number:
= appendOptions(, )
}
default:
:= protowire.ConsumeFieldValue(, , )
= [:]
}
}
.L1.Options = .builder.optionsUnmarshaler(&descopts.Oneof, )
}
func ( *Extension) ( []byte, *strs.Builder) {
var []byte
var []byte
.L2 = new(ExtensionL2)
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case protowire.VarintType:
, := protowire.ConsumeVarint()
= [:]
switch {
case genid.FieldDescriptorProto_Proto3Optional_field_number:
.L2.IsProto3Optional = protowire.DecodeBool()
}
case protowire.BytesType:
, := protowire.ConsumeBytes()
= [:]
switch {
case genid.FieldDescriptorProto_JsonName_field_number:
.L2.StringName.InitJSON(.MakeString())
case genid.FieldDescriptorProto_DefaultValue_field_number:
.L2.Default.val = protoreflect.ValueOfBytes()
case genid.FieldDescriptorProto_TypeName_field_number:
=
case genid.FieldDescriptorProto_Options_field_number:
.unmarshalOptions()
= appendOptions(, )
}
default:
:= protowire.ConsumeFieldValue(, , )
= [:]
}
}
if != nil {
:= makeFullName(, )
switch .L1.Kind {
case protoreflect.EnumKind:
.L2.Enum = PlaceholderEnum()
case protoreflect.MessageKind, protoreflect.GroupKind:
.L2.Message = PlaceholderMessage()
}
}
.L2.Options = .L0.ParentFile.builder.optionsUnmarshaler(&descopts.Field, )
}
func ( *Extension) ( []byte) {
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case protowire.VarintType:
, := protowire.ConsumeVarint()
= [:]
switch {
case genid.FieldOptions_Packed_field_number:
.L2.IsPacked = protowire.DecodeBool()
}
default:
:= protowire.ConsumeFieldValue(, , )
= [:]
}
}
}
func ( *Service) ( []byte, *strs.Builder) {
var [][]byte
var []byte
.L2 = new(ServiceL2)
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case protowire.BytesType:
, := protowire.ConsumeBytes()
= [:]
switch {
case genid.ServiceDescriptorProto_Method_field_number:
= append(, )
case genid.ServiceDescriptorProto_Options_field_number:
= appendOptions(, )
}
default:
:= protowire.ConsumeFieldValue(, , )
= [:]
}
}
if len() > 0 {
.L2.Methods.List = make([]Method, len())
for , := range {
.L2.Methods.List[].unmarshalFull(, , .L0.ParentFile, , )
}
}
.L2.Options = .L0.ParentFile.builder.optionsUnmarshaler(&descopts.Service, )
}
func ( *Method) ( []byte, *strs.Builder, *File, protoreflect.Descriptor, int) {
.L0.ParentFile =
.L0.Parent =
.L0.Index =
var []byte
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case protowire.VarintType:
, := protowire.ConsumeVarint()
= [:]
switch {
case genid.MethodDescriptorProto_ClientStreaming_field_number:
.L1.IsStreamingClient = protowire.DecodeBool()
case genid.MethodDescriptorProto_ServerStreaming_field_number:
.L1.IsStreamingServer = protowire.DecodeBool()
}
case protowire.BytesType:
, := protowire.ConsumeBytes()
= [:]
switch {
case genid.MethodDescriptorProto_Name_field_number:
.L0.FullName = appendFullName(, .FullName(), )
case genid.MethodDescriptorProto_InputType_field_number:
.L1.Input = PlaceholderMessage(makeFullName(, ))
case genid.MethodDescriptorProto_OutputType_field_number:
.L1.Output = PlaceholderMessage(makeFullName(, ))
case genid.MethodDescriptorProto_Options_field_number:
= appendOptions(, )
}
default:
:= protowire.ConsumeFieldValue(, , )
= [:]
}
}
.L1.Options = .builder.optionsUnmarshaler(&descopts.Method, )
}
func (, []byte) []byte {
if == nil {
= []byte{}
}
return append(, ...)
}
func ( *Builder) ( *protoreflect.ProtoMessage, []byte) func() protoreflect.ProtoMessage {
if == nil {
return nil
}
var protoreflect.ProtoMessage
var sync.Once
return func() protoreflect.ProtoMessage {
.Do(func() {
if * == nil {
panic("Descriptor.Options called without importing the descriptor package")
}
= reflect.New(reflect.TypeOf(*).Elem()).Interface().(protoreflect.ProtoMessage)
if := (proto.UnmarshalOptions{
AllowPartial: true,
Resolver: .TypeResolver,
}).Unmarshal(, ); != nil {
panic()
}
})
return
}
}