summaryrefslogtreecommitdiff
path: root/vendor/google.golang.org/protobuf/internal/filedesc
diff options
context:
space:
mode:
authorLibravatar Terin Stock <terinjokes@gmail.com>2025-03-09 17:47:56 +0100
committerLibravatar Terin Stock <terinjokes@gmail.com>2025-03-10 01:59:49 +0100
commit3ac1ee16f377d31a0fb80c8dae28b6239ac4229e (patch)
treef61faa581feaaeaba2542b9f2b8234a590684413 /vendor/google.golang.org/protobuf/internal/filedesc
parent[chore] update URLs to forked source (diff)
downloadgotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz
[chore] remove vendor
Diffstat (limited to 'vendor/google.golang.org/protobuf/internal/filedesc')
-rw-r--r--vendor/google.golang.org/protobuf/internal/filedesc/build.go157
-rw-r--r--vendor/google.golang.org/protobuf/internal/filedesc/desc.go755
-rw-r--r--vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go560
-rw-r--r--vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go703
-rw-r--r--vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go457
-rw-r--r--vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go367
-rw-r--r--vendor/google.golang.org/protobuf/internal/filedesc/editions.go164
-rw-r--r--vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go110
8 files changed, 0 insertions, 3273 deletions
diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/build.go b/vendor/google.golang.org/protobuf/internal/filedesc/build.go
deleted file mode 100644
index 7cac1c190..000000000
--- a/vendor/google.golang.org/protobuf/internal/filedesc/build.go
+++ /dev/null
@@ -1,157 +0,0 @@
-// Copyright 2019 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package filedesc provides functionality for constructing descriptors.
-//
-// The types in this package implement interfaces in the protoreflect package
-// related to protobuf descripriptors.
-package filedesc
-
-import (
- "google.golang.org/protobuf/encoding/protowire"
- "google.golang.org/protobuf/internal/genid"
- "google.golang.org/protobuf/reflect/protoreflect"
- "google.golang.org/protobuf/reflect/protoregistry"
-)
-
-// Builder construct a protoreflect.FileDescriptor from the raw descriptor.
-type Builder struct {
- // GoPackagePath is the Go package path that is invoking this builder.
- GoPackagePath string
-
- // RawDescriptor is the wire-encoded bytes of FileDescriptorProto
- // and must be populated.
- RawDescriptor []byte
-
- // NumEnums is the total number of enums declared in the file.
- NumEnums int32
- // NumMessages is the total number of messages declared in the file.
- // It includes the implicit message declarations for map entries.
- NumMessages int32
- // NumExtensions is the total number of extensions declared in the file.
- NumExtensions int32
- // NumServices is the total number of services declared in the file.
- NumServices int32
-
- // TypeResolver resolves extension field types for descriptor options.
- // If nil, it uses protoregistry.GlobalTypes.
- TypeResolver interface {
- protoregistry.ExtensionTypeResolver
- }
-
- // FileRegistry is use to lookup file, enum, and message dependencies.
- // Once constructed, the file descriptor is registered here.
- // If nil, it uses protoregistry.GlobalFiles.
- FileRegistry interface {
- FindFileByPath(string) (protoreflect.FileDescriptor, error)
- FindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error)
- RegisterFile(protoreflect.FileDescriptor) error
- }
-}
-
-// resolverByIndex is an interface Builder.FileRegistry may implement.
-// If so, it permits looking up an enum or message dependency based on the
-// sub-list and element index into filetype.Builder.DependencyIndexes.
-type resolverByIndex interface {
- FindEnumByIndex(int32, int32, []Enum, []Message) protoreflect.EnumDescriptor
- FindMessageByIndex(int32, int32, []Enum, []Message) protoreflect.MessageDescriptor
-}
-
-// Indexes of each sub-list in filetype.Builder.DependencyIndexes.
-const (
- listFieldDeps int32 = iota
- listExtTargets
- listExtDeps
- listMethInDeps
- listMethOutDeps
-)
-
-// Out is the output of the Builder.
-type Out struct {
- File protoreflect.FileDescriptor
-
- // Enums is all enum descriptors in "flattened ordering".
- Enums []Enum
- // Messages is all message descriptors in "flattened ordering".
- // It includes the implicit message declarations for map entries.
- Messages []Message
- // Extensions is all extension descriptors in "flattened ordering".
- Extensions []Extension
- // Service is all service descriptors in "flattened ordering".
- Services []Service
-}
-
-// Build constructs a FileDescriptor given the parameters set in Builder.
-// It assumes that the inputs are well-formed and panics if any inconsistencies
-// are encountered.
-//
-// If NumEnums+NumMessages+NumExtensions+NumServices is zero,
-// then Build automatically derives them from the raw descriptor.
-func (db Builder) Build() (out Out) {
- // Populate the counts if uninitialized.
- if db.NumEnums+db.NumMessages+db.NumExtensions+db.NumServices == 0 {
- db.unmarshalCounts(db.RawDescriptor, true)
- }
-
- // Initialize resolvers and registries if unpopulated.
- if db.TypeResolver == nil {
- db.TypeResolver = protoregistry.GlobalTypes
- }
- if db.FileRegistry == nil {
- db.FileRegistry = protoregistry.GlobalFiles
- }
-
- fd := newRawFile(db)
- out.File = fd
- out.Enums = fd.allEnums
- out.Messages = fd.allMessages
- out.Extensions = fd.allExtensions
- out.Services = fd.allServices
-
- if err := db.FileRegistry.RegisterFile(fd); err != nil {
- panic(err)
- }
- return out
-}
-
-// unmarshalCounts counts the number of enum, message, extension, and service
-// declarations in the raw message, which is either a FileDescriptorProto
-// or a MessageDescriptorProto depending on whether isFile is set.
-func (db *Builder) unmarshalCounts(b []byte, isFile bool) {
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- if isFile {
- switch num {
- case genid.FileDescriptorProto_EnumType_field_number:
- db.NumEnums++
- case genid.FileDescriptorProto_MessageType_field_number:
- db.unmarshalCounts(v, false)
- db.NumMessages++
- case genid.FileDescriptorProto_Extension_field_number:
- db.NumExtensions++
- case genid.FileDescriptorProto_Service_field_number:
- db.NumServices++
- }
- } else {
- switch num {
- case genid.DescriptorProto_EnumType_field_number:
- db.NumEnums++
- case genid.DescriptorProto_NestedType_field_number:
- db.unmarshalCounts(v, false)
- db.NumMessages++
- case genid.DescriptorProto_Extension_field_number:
- db.NumExtensions++
- }
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
-}
diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go
deleted file mode 100644
index 378b826fa..000000000
--- a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go
+++ /dev/null
@@ -1,755 +0,0 @@
-// Copyright 2019 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package filedesc
-
-import (
- "bytes"
- "fmt"
- "strings"
- "sync"
- "sync/atomic"
-
- "google.golang.org/protobuf/internal/descfmt"
- "google.golang.org/protobuf/internal/descopts"
- "google.golang.org/protobuf/internal/encoding/defval"
- "google.golang.org/protobuf/internal/encoding/messageset"
- "google.golang.org/protobuf/internal/genid"
- "google.golang.org/protobuf/internal/pragma"
- "google.golang.org/protobuf/internal/strs"
- "google.golang.org/protobuf/reflect/protoreflect"
- "google.golang.org/protobuf/reflect/protoregistry"
-)
-
-// Edition is an Enum for proto2.Edition
-type Edition int32
-
-// These values align with the value of Enum in descriptor.proto which allows
-// direct conversion between the proto enum and this enum.
-const (
- EditionUnknown Edition = 0
- EditionProto2 Edition = 998
- EditionProto3 Edition = 999
- Edition2023 Edition = 1000
- Edition2024 Edition = 1001
- EditionUnsupported Edition = 100000
-)
-
-// The types in this file may have a suffix:
-// • L0: Contains fields common to all descriptors (except File) and
-// must be initialized up front.
-// • L1: Contains fields specific to a descriptor and
-// must be initialized up front. If the associated proto uses Editions, the
-// Editions features must always be resolved. If not explicitly set, the
-// appropriate default must be resolved and set.
-// • L2: Contains fields that are lazily initialized when constructing
-// from the raw file descriptor. When constructing as a literal, the L2
-// fields must be initialized up front.
-//
-// The types are exported so that packages like reflect/protodesc can
-// directly construct descriptors.
-
-type (
- File struct {
- fileRaw
- L1 FileL1
-
- once uint32 // atomically set if L2 is valid
- mu sync.Mutex // protects L2
- L2 *FileL2
- }
- FileL1 struct {
- Syntax protoreflect.Syntax
- Edition Edition // Only used if Syntax == Editions
- Path string
- Package protoreflect.FullName
-
- Enums Enums
- Messages Messages
- Extensions Extensions
- Services Services
-
- EditionFeatures EditionFeatures
- }
- FileL2 struct {
- Options func() protoreflect.ProtoMessage
- Imports FileImports
- Locations SourceLocations
- }
-
- // EditionFeatures is a frequently-instantiated struct, so please take care
- // to minimize padding when adding new fields to this struct (add them in
- // the right place/order).
- EditionFeatures struct {
- // StripEnumPrefix determines if the plugin generates enum value
- // constants as-is, with their prefix stripped, or both variants.
- StripEnumPrefix int
-
- // IsFieldPresence is true if field_presence is EXPLICIT
- // https://protobuf.dev/editions/features/#field_presence
- IsFieldPresence bool
-
- // IsFieldPresence is true if field_presence is LEGACY_REQUIRED
- // https://protobuf.dev/editions/features/#field_presence
- IsLegacyRequired bool
-
- // IsOpenEnum is true if enum_type is OPEN
- // https://protobuf.dev/editions/features/#enum_type
- IsOpenEnum bool
-
- // IsPacked is true if repeated_field_encoding is PACKED
- // https://protobuf.dev/editions/features/#repeated_field_encoding
- IsPacked bool
-
- // IsUTF8Validated is true if utf_validation is VERIFY
- // https://protobuf.dev/editions/features/#utf8_validation
- IsUTF8Validated bool
-
- // IsDelimitedEncoded is true if message_encoding is DELIMITED
- // https://protobuf.dev/editions/features/#message_encoding
- IsDelimitedEncoded bool
-
- // IsJSONCompliant is true if json_format is ALLOW
- // https://protobuf.dev/editions/features/#json_format
- IsJSONCompliant bool
-
- // GenerateLegacyUnmarshalJSON determines if the plugin generates the
- // UnmarshalJSON([]byte) error method for enums.
- GenerateLegacyUnmarshalJSON bool
- // APILevel controls which API (Open, Hybrid or Opaque) should be used
- // for generated code (.pb.go files).
- APILevel int
- }
-)
-
-func (fd *File) ParentFile() protoreflect.FileDescriptor { return fd }
-func (fd *File) Parent() protoreflect.Descriptor { return nil }
-func (fd *File) Index() int { return 0 }
-func (fd *File) Syntax() protoreflect.Syntax { return fd.L1.Syntax }
-
-// Not exported and just used to reconstruct the original FileDescriptor proto
-func (fd *File) Edition() int32 { return int32(fd.L1.Edition) }
-func (fd *File) Name() protoreflect.Name { return fd.L1.Package.Name() }
-func (fd *File) FullName() protoreflect.FullName { return fd.L1.Package }
-func (fd *File) IsPlaceholder() bool { return false }
-func (fd *File) Options() protoreflect.ProtoMessage {
- if f := fd.lazyInit().Options; f != nil {
- return f()
- }
- return descopts.File
-}
-func (fd *File) Path() string { return fd.L1.Path }
-func (fd *File) Package() protoreflect.FullName { return fd.L1.Package }
-func (fd *File) Imports() protoreflect.FileImports { return &fd.lazyInit().Imports }
-func (fd *File) Enums() protoreflect.EnumDescriptors { return &fd.L1.Enums }
-func (fd *File) Messages() protoreflect.MessageDescriptors { return &fd.L1.Messages }
-func (fd *File) Extensions() protoreflect.ExtensionDescriptors { return &fd.L1.Extensions }
-func (fd *File) Services() protoreflect.ServiceDescriptors { return &fd.L1.Services }
-func (fd *File) SourceLocations() protoreflect.SourceLocations { return &fd.lazyInit().Locations }
-func (fd *File) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, fd) }
-func (fd *File) ProtoType(protoreflect.FileDescriptor) {}
-func (fd *File) ProtoInternal(pragma.DoNotImplement) {}
-
-func (fd *File) lazyInit() *FileL2 {
- if atomic.LoadUint32(&fd.once) == 0 {
- fd.lazyInitOnce()
- }
- return fd.L2
-}
-
-func (fd *File) lazyInitOnce() {
- fd.mu.Lock()
- if fd.L2 == nil {
- fd.lazyRawInit() // recursively initializes all L2 structures
- }
- atomic.StoreUint32(&fd.once, 1)
- fd.mu.Unlock()
-}
-
-// GoPackagePath is a pseudo-internal API for determining the Go package path
-// that this file descriptor is declared in.
-//
-// WARNING: This method is exempt from the compatibility promise and may be
-// removed in the future without warning.
-func (fd *File) GoPackagePath() string {
- return fd.builder.GoPackagePath
-}
-
-type (
- Enum struct {
- Base
- L1 EnumL1
- L2 *EnumL2 // protected by fileDesc.once
- }
- EnumL1 struct {
- eagerValues bool // controls whether EnumL2.Values is already populated
-
- EditionFeatures EditionFeatures
- }
- EnumL2 struct {
- Options func() protoreflect.ProtoMessage
- Values EnumValues
- ReservedNames Names
- ReservedRanges EnumRanges
- }
-
- EnumValue struct {
- Base
- L1 EnumValueL1
- }
- EnumValueL1 struct {
- Options func() protoreflect.ProtoMessage
- Number protoreflect.EnumNumber
- }
-)
-
-func (ed *Enum) Options() protoreflect.ProtoMessage {
- if f := ed.lazyInit().Options; f != nil {
- return f()
- }
- return descopts.Enum
-}
-func (ed *Enum) Values() protoreflect.EnumValueDescriptors {
- if ed.L1.eagerValues {
- return &ed.L2.Values
- }
- return &ed.lazyInit().Values
-}
-func (ed *Enum) ReservedNames() protoreflect.Names { return &ed.lazyInit().ReservedNames }
-func (ed *Enum) ReservedRanges() protoreflect.EnumRanges { return &ed.lazyInit().ReservedRanges }
-func (ed *Enum) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, ed) }
-func (ed *Enum) ProtoType(protoreflect.EnumDescriptor) {}
-func (ed *Enum) lazyInit() *EnumL2 {
- ed.L0.ParentFile.lazyInit() // implicitly initializes L2
- return ed.L2
-}
-func (ed *Enum) IsClosed() bool {
- return !ed.L1.EditionFeatures.IsOpenEnum
-}
-
-func (ed *EnumValue) Options() protoreflect.ProtoMessage {
- if f := ed.L1.Options; f != nil {
- return f()
- }
- return descopts.EnumValue
-}
-func (ed *EnumValue) Number() protoreflect.EnumNumber { return ed.L1.Number }
-func (ed *EnumValue) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, ed) }
-func (ed *EnumValue) ProtoType(protoreflect.EnumValueDescriptor) {}
-
-type (
- Message struct {
- Base
- L1 MessageL1
- L2 *MessageL2 // protected by fileDesc.once
- }
- MessageL1 struct {
- Enums Enums
- Messages Messages
- Extensions Extensions
- IsMapEntry bool // promoted from google.protobuf.MessageOptions
- IsMessageSet bool // promoted from google.protobuf.MessageOptions
-
- EditionFeatures EditionFeatures
- }
- MessageL2 struct {
- Options func() protoreflect.ProtoMessage
- Fields Fields
- Oneofs Oneofs
- ReservedNames Names
- ReservedRanges FieldRanges
- RequiredNumbers FieldNumbers // must be consistent with Fields.Cardinality
- ExtensionRanges FieldRanges
- ExtensionRangeOptions []func() protoreflect.ProtoMessage // must be same length as ExtensionRanges
- }
-
- Field struct {
- Base
- L1 FieldL1
- }
- FieldL1 struct {
- Options func() protoreflect.ProtoMessage
- Number protoreflect.FieldNumber
- Cardinality protoreflect.Cardinality // must be consistent with Message.RequiredNumbers
- Kind protoreflect.Kind
- StringName stringName
- IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto
- IsWeak bool // promoted from google.protobuf.FieldOptions
- IsLazy bool // promoted from google.protobuf.FieldOptions
- Default defaultValue
- ContainingOneof protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields
- Enum protoreflect.EnumDescriptor
- Message protoreflect.MessageDescriptor
-
- EditionFeatures EditionFeatures
- }
-
- Oneof struct {
- Base
- L1 OneofL1
- }
- OneofL1 struct {
- Options func() protoreflect.ProtoMessage
- Fields OneofFields // must be consistent with Message.Fields.ContainingOneof
-
- EditionFeatures EditionFeatures
- }
-)
-
-func (md *Message) Options() protoreflect.ProtoMessage {
- if f := md.lazyInit().Options; f != nil {
- return f()
- }
- return descopts.Message
-}
-func (md *Message) IsMapEntry() bool { return md.L1.IsMapEntry }
-func (md *Message) Fields() protoreflect.FieldDescriptors { return &md.lazyInit().Fields }
-func (md *Message) Oneofs() protoreflect.OneofDescriptors { return &md.lazyInit().Oneofs }
-func (md *Message) ReservedNames() protoreflect.Names { return &md.lazyInit().ReservedNames }
-func (md *Message) ReservedRanges() protoreflect.FieldRanges { return &md.lazyInit().ReservedRanges }
-func (md *Message) RequiredNumbers() protoreflect.FieldNumbers { return &md.lazyInit().RequiredNumbers }
-func (md *Message) ExtensionRanges() protoreflect.FieldRanges { return &md.lazyInit().ExtensionRanges }
-func (md *Message) ExtensionRangeOptions(i int) protoreflect.ProtoMessage {
- if f := md.lazyInit().ExtensionRangeOptions[i]; f != nil {
- return f()
- }
- return descopts.ExtensionRange
-}
-func (md *Message) Enums() protoreflect.EnumDescriptors { return &md.L1.Enums }
-func (md *Message) Messages() protoreflect.MessageDescriptors { return &md.L1.Messages }
-func (md *Message) Extensions() protoreflect.ExtensionDescriptors { return &md.L1.Extensions }
-func (md *Message) ProtoType(protoreflect.MessageDescriptor) {}
-func (md *Message) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, md) }
-func (md *Message) lazyInit() *MessageL2 {
- md.L0.ParentFile.lazyInit() // implicitly initializes L2
- return md.L2
-}
-
-// IsMessageSet is a pseudo-internal API for checking whether a message
-// should serialize in the proto1 message format.
-//
-// WARNING: This method is exempt from the compatibility promise and may be
-// removed in the future without warning.
-func (md *Message) IsMessageSet() bool {
- return md.L1.IsMessageSet
-}
-
-func (fd *Field) Options() protoreflect.ProtoMessage {
- if f := fd.L1.Options; f != nil {
- return f()
- }
- return descopts.Field
-}
-func (fd *Field) Number() protoreflect.FieldNumber { return fd.L1.Number }
-func (fd *Field) Cardinality() protoreflect.Cardinality { return fd.L1.Cardinality }
-func (fd *Field) Kind() protoreflect.Kind {
- return fd.L1.Kind
-}
-func (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON }
-func (fd *Field) JSONName() string { return fd.L1.StringName.getJSON(fd) }
-func (fd *Field) TextName() string { return fd.L1.StringName.getText(fd) }
-func (fd *Field) HasPresence() bool {
- if fd.L1.Cardinality == protoreflect.Repeated {
- return false
- }
- return fd.IsExtension() || fd.L1.EditionFeatures.IsFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil
-}
-func (fd *Field) HasOptionalKeyword() bool {
- return (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional
-}
-func (fd *Field) IsPacked() bool {
- if fd.L1.Cardinality != protoreflect.Repeated {
- return false
- }
- switch fd.L1.Kind {
- case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind:
- return false
- }
- return fd.L1.EditionFeatures.IsPacked
-}
-func (fd *Field) IsExtension() bool { return false }
-func (fd *Field) IsWeak() bool { return fd.L1.IsWeak }
-func (fd *Field) IsLazy() bool { return fd.L1.IsLazy }
-func (fd *Field) IsList() bool { return fd.Cardinality() == protoreflect.Repeated && !fd.IsMap() }
-func (fd *Field) IsMap() bool { return fd.Message() != nil && fd.Message().IsMapEntry() }
-func (fd *Field) MapKey() protoreflect.FieldDescriptor {
- if !fd.IsMap() {
- return nil
- }
- return fd.Message().Fields().ByNumber(genid.MapEntry_Key_field_number)
-}
-func (fd *Field) MapValue() protoreflect.FieldDescriptor {
- if !fd.IsMap() {
- return nil
- }
- return fd.Message().Fields().ByNumber(genid.MapEntry_Value_field_number)
-}
-func (fd *Field) HasDefault() bool { return fd.L1.Default.has }
-func (fd *Field) Default() protoreflect.Value { return fd.L1.Default.get(fd) }
-func (fd *Field) DefaultEnumValue() protoreflect.EnumValueDescriptor { return fd.L1.Default.enum }
-func (fd *Field) ContainingOneof() protoreflect.OneofDescriptor { return fd.L1.ContainingOneof }
-func (fd *Field) ContainingMessage() protoreflect.MessageDescriptor {
- return fd.L0.Parent.(protoreflect.MessageDescriptor)
-}
-func (fd *Field) Enum() protoreflect.EnumDescriptor {
- return fd.L1.Enum
-}
-func (fd *Field) Message() protoreflect.MessageDescriptor {
- if fd.L1.IsWeak {
- if d, _ := protoregistry.GlobalFiles.FindDescriptorByName(fd.L1.Message.FullName()); d != nil {
- return d.(protoreflect.MessageDescriptor)
- }
- }
- return fd.L1.Message
-}
-func (fd *Field) IsMapEntry() bool {
- parent, ok := fd.L0.Parent.(protoreflect.MessageDescriptor)
- return ok && parent.IsMapEntry()
-}
-func (fd *Field) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, fd) }
-func (fd *Field) ProtoType(protoreflect.FieldDescriptor) {}
-
-// EnforceUTF8 is a pseudo-internal API to determine whether to enforce UTF-8
-// validation for the string field. This exists for Google-internal use only
-// since proto3 did not enforce UTF-8 validity prior to the open-source release.
-// If this method does not exist, the default is to enforce valid UTF-8.
-//
-// WARNING: This method is exempt from the compatibility promise and may be
-// removed in the future without warning.
-func (fd *Field) EnforceUTF8() bool {
- return fd.L1.EditionFeatures.IsUTF8Validated
-}
-
-func (od *Oneof) IsSynthetic() bool {
- return od.L0.ParentFile.L1.Syntax == protoreflect.Proto3 && len(od.L1.Fields.List) == 1 && od.L1.Fields.List[0].HasOptionalKeyword()
-}
-func (od *Oneof) Options() protoreflect.ProtoMessage {
- if f := od.L1.Options; f != nil {
- return f()
- }
- return descopts.Oneof
-}
-func (od *Oneof) Fields() protoreflect.FieldDescriptors { return &od.L1.Fields }
-func (od *Oneof) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, od) }
-func (od *Oneof) ProtoType(protoreflect.OneofDescriptor) {}
-
-type (
- Extension struct {
- Base
- L1 ExtensionL1
- L2 *ExtensionL2 // protected by fileDesc.once
- }
- ExtensionL1 struct {
- Number protoreflect.FieldNumber
- Extendee protoreflect.MessageDescriptor
- Cardinality protoreflect.Cardinality
- Kind protoreflect.Kind
- IsLazy bool
- EditionFeatures EditionFeatures
- }
- ExtensionL2 struct {
- Options func() protoreflect.ProtoMessage
- StringName stringName
- IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto
- Default defaultValue
- Enum protoreflect.EnumDescriptor
- Message protoreflect.MessageDescriptor
- }
-)
-
-func (xd *Extension) Options() protoreflect.ProtoMessage {
- if f := xd.lazyInit().Options; f != nil {
- return f()
- }
- return descopts.Field
-}
-func (xd *Extension) Number() protoreflect.FieldNumber { return xd.L1.Number }
-func (xd *Extension) Cardinality() protoreflect.Cardinality { return xd.L1.Cardinality }
-func (xd *Extension) Kind() protoreflect.Kind { return xd.L1.Kind }
-func (xd *Extension) HasJSONName() bool { return xd.lazyInit().StringName.hasJSON }
-func (xd *Extension) JSONName() string { return xd.lazyInit().StringName.getJSON(xd) }
-func (xd *Extension) TextName() string { return xd.lazyInit().StringName.getText(xd) }
-func (xd *Extension) HasPresence() bool { return xd.L1.Cardinality != protoreflect.Repeated }
-func (xd *Extension) HasOptionalKeyword() bool {
- return (xd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && xd.L1.Cardinality == protoreflect.Optional) || xd.lazyInit().IsProto3Optional
-}
-func (xd *Extension) IsPacked() bool {
- if xd.L1.Cardinality != protoreflect.Repeated {
- return false
- }
- switch xd.L1.Kind {
- case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind:
- return false
- }
- return xd.L1.EditionFeatures.IsPacked
-}
-func (xd *Extension) IsExtension() bool { return true }
-func (xd *Extension) IsWeak() bool { return false }
-func (xd *Extension) IsLazy() bool { return xd.L1.IsLazy }
-func (xd *Extension) IsList() bool { return xd.Cardinality() == protoreflect.Repeated }
-func (xd *Extension) IsMap() bool { return false }
-func (xd *Extension) MapKey() protoreflect.FieldDescriptor { return nil }
-func (xd *Extension) MapValue() protoreflect.FieldDescriptor { return nil }
-func (xd *Extension) HasDefault() bool { return xd.lazyInit().Default.has }
-func (xd *Extension) Default() protoreflect.Value { return xd.lazyInit().Default.get(xd) }
-func (xd *Extension) DefaultEnumValue() protoreflect.EnumValueDescriptor {
- return xd.lazyInit().Default.enum
-}
-func (xd *Extension) ContainingOneof() protoreflect.OneofDescriptor { return nil }
-func (xd *Extension) ContainingMessage() protoreflect.MessageDescriptor { return xd.L1.Extendee }
-func (xd *Extension) Enum() protoreflect.EnumDescriptor { return xd.lazyInit().Enum }
-func (xd *Extension) Message() protoreflect.MessageDescriptor { return xd.lazyInit().Message }
-func (xd *Extension) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, xd) }
-func (xd *Extension) ProtoType(protoreflect.FieldDescriptor) {}
-func (xd *Extension) ProtoInternal(pragma.DoNotImplement) {}
-func (xd *Extension) lazyInit() *ExtensionL2 {
- xd.L0.ParentFile.lazyInit() // implicitly initializes L2
- return xd.L2
-}
-
-type (
- Service struct {
- Base
- L1 ServiceL1
- L2 *ServiceL2 // protected by fileDesc.once
- }
- ServiceL1 struct{}
- ServiceL2 struct {
- Options func() protoreflect.ProtoMessage
- Methods Methods
- }
-
- Method struct {
- Base
- L1 MethodL1
- }
- MethodL1 struct {
- Options func() protoreflect.ProtoMessage
- Input protoreflect.MessageDescriptor
- Output protoreflect.MessageDescriptor
- IsStreamingClient bool
- IsStreamingServer bool
- }
-)
-
-func (sd *Service) Options() protoreflect.ProtoMessage {
- if f := sd.lazyInit().Options; f != nil {
- return f()
- }
- return descopts.Service
-}
-func (sd *Service) Methods() protoreflect.MethodDescriptors { return &sd.lazyInit().Methods }
-func (sd *Service) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, sd) }
-func (sd *Service) ProtoType(protoreflect.ServiceDescriptor) {}
-func (sd *Service) ProtoInternal(pragma.DoNotImplement) {}
-func (sd *Service) lazyInit() *ServiceL2 {
- sd.L0.ParentFile.lazyInit() // implicitly initializes L2
- return sd.L2
-}
-
-func (md *Method) Options() protoreflect.ProtoMessage {
- if f := md.L1.Options; f != nil {
- return f()
- }
- return descopts.Method
-}
-func (md *Method) Input() protoreflect.MessageDescriptor { return md.L1.Input }
-func (md *Method) Output() protoreflect.MessageDescriptor { return md.L1.Output }
-func (md *Method) IsStreamingClient() bool { return md.L1.IsStreamingClient }
-func (md *Method) IsStreamingServer() bool { return md.L1.IsStreamingServer }
-func (md *Method) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, md) }
-func (md *Method) ProtoType(protoreflect.MethodDescriptor) {}
-func (md *Method) ProtoInternal(pragma.DoNotImplement) {}
-
-// Surrogate files are can be used to create standalone descriptors
-// where the syntax is only information derived from the parent file.
-var (
- SurrogateProto2 = &File{L1: FileL1{Syntax: protoreflect.Proto2}, L2: &FileL2{}}
- SurrogateProto3 = &File{L1: FileL1{Syntax: protoreflect.Proto3}, L2: &FileL2{}}
- SurrogateEdition2023 = &File{L1: FileL1{Syntax: protoreflect.Editions, Edition: Edition2023}, L2: &FileL2{}}
-)
-
-type (
- Base struct {
- L0 BaseL0
- }
- BaseL0 struct {
- FullName protoreflect.FullName // must be populated
- ParentFile *File // must be populated
- Parent protoreflect.Descriptor
- Index int
- }
-)
-
-func (d *Base) Name() protoreflect.Name { return d.L0.FullName.Name() }
-func (d *Base) FullName() protoreflect.FullName { return d.L0.FullName }
-func (d *Base) ParentFile() protoreflect.FileDescriptor {
- if d.L0.ParentFile == SurrogateProto2 || d.L0.ParentFile == SurrogateProto3 {
- return nil // surrogate files are not real parents
- }
- return d.L0.ParentFile
-}
-func (d *Base) Parent() protoreflect.Descriptor { return d.L0.Parent }
-func (d *Base) Index() int { return d.L0.Index }
-func (d *Base) Syntax() protoreflect.Syntax { return d.L0.ParentFile.Syntax() }
-func (d *Base) IsPlaceholder() bool { return false }
-func (d *Base) ProtoInternal(pragma.DoNotImplement) {}
-
-type stringName struct {
- hasJSON bool
- once sync.Once
- nameJSON string
- nameText string
-}
-
-// InitJSON initializes the name. It is exported for use by other internal packages.
-func (s *stringName) InitJSON(name string) {
- s.hasJSON = true
- s.nameJSON = name
-}
-
-// Returns true if this field is structured like the synthetic field of a proto2
-// group. This allows us to expand our treatment of delimited fields without
-// breaking proto2 files that have been upgraded to editions.
-func isGroupLike(fd protoreflect.FieldDescriptor) bool {
- // Groups are always group types.
- if fd.Kind() != protoreflect.GroupKind {
- return false
- }
-
- // Group fields are always the lowercase type name.
- if strings.ToLower(string(fd.Message().Name())) != string(fd.Name()) {
- return false
- }
-
- // Groups could only be defined in the same file they're used.
- if fd.Message().ParentFile() != fd.ParentFile() {
- return false
- }
-
- // Group messages are always defined in the same scope as the field. File
- // level extensions will compare NULL == NULL here, which is why the file
- // comparison above is necessary to ensure both come from the same file.
- if fd.IsExtension() {
- return fd.Parent() == fd.Message().Parent()
- }
- return fd.ContainingMessage() == fd.Message().Parent()
-}
-
-func (s *stringName) lazyInit(fd protoreflect.FieldDescriptor) *stringName {
- s.once.Do(func() {
- if fd.IsExtension() {
- // For extensions, JSON and text are formatted the same way.
- var name string
- if messageset.IsMessageSetExtension(fd) {
- name = string("[" + fd.FullName().Parent() + "]")
- } else {
- name = string("[" + fd.FullName() + "]")
- }
- s.nameJSON = name
- s.nameText = name
- } else {
- // Format the JSON name.
- if !s.hasJSON {
- s.nameJSON = strs.JSONCamelCase(string(fd.Name()))
- }
-
- // Format the text name.
- s.nameText = string(fd.Name())
- if isGroupLike(fd) {
- s.nameText = string(fd.Message().Name())
- }
- }
- })
- return s
-}
-
-func (s *stringName) getJSON(fd protoreflect.FieldDescriptor) string { return s.lazyInit(fd).nameJSON }
-func (s *stringName) getText(fd protoreflect.FieldDescriptor) string { return s.lazyInit(fd).nameText }
-
-func DefaultValue(v protoreflect.Value, ev protoreflect.EnumValueDescriptor) defaultValue {
- dv := defaultValue{has: v.IsValid(), val: v, enum: ev}
- if b, ok := v.Interface().([]byte); ok {
- // Store a copy of the default bytes, so that we can detect
- // accidental mutations of the original value.
- dv.bytes = append([]byte(nil), b...)
- }
- return dv
-}
-
-func unmarshalDefault(b []byte, k protoreflect.Kind, pf *File, ed protoreflect.EnumDescriptor) defaultValue {
- var evs protoreflect.EnumValueDescriptors
- if k == protoreflect.EnumKind {
- // If the enum is declared within the same file, be careful not to
- // blindly call the Values method, lest we bind ourselves in a deadlock.
- if e, ok := ed.(*Enum); ok && e.L0.ParentFile == pf {
- evs = &e.L2.Values
- } else {
- evs = ed.Values()
- }
-
- // If we are unable to resolve the enum dependency, use a placeholder
- // enum value since we will not be able to parse the default value.
- if ed.IsPlaceholder() && protoreflect.Name(b).IsValid() {
- v := protoreflect.ValueOfEnum(0)
- ev := PlaceholderEnumValue(ed.FullName().Parent().Append(protoreflect.Name(b)))
- return DefaultValue(v, ev)
- }
- }
-
- v, ev, err := defval.Unmarshal(string(b), k, evs, defval.Descriptor)
- if err != nil {
- panic(err)
- }
- return DefaultValue(v, ev)
-}
-
-type defaultValue struct {
- has bool
- val protoreflect.Value
- enum protoreflect.EnumValueDescriptor
- bytes []byte
-}
-
-func (dv *defaultValue) get(fd protoreflect.FieldDescriptor) protoreflect.Value {
- // Return the zero value as the default if unpopulated.
- if !dv.has {
- if fd.Cardinality() == protoreflect.Repeated {
- return protoreflect.Value{}
- }
- switch fd.Kind() {
- case protoreflect.BoolKind:
- return protoreflect.ValueOfBool(false)
- case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:
- return protoreflect.ValueOfInt32(0)
- case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:
- return protoreflect.ValueOfInt64(0)
- case protoreflect.Uint32Kind, protoreflect.Fixed32Kind:
- return protoreflect.ValueOfUint32(0)
- case protoreflect.Uint64Kind, protoreflect.Fixed64Kind:
- return protoreflect.ValueOfUint64(0)
- case protoreflect.FloatKind:
- return protoreflect.ValueOfFloat32(0)
- case protoreflect.DoubleKind:
- return protoreflect.ValueOfFloat64(0)
- case protoreflect.StringKind:
- return protoreflect.ValueOfString("")
- case protoreflect.BytesKind:
- return protoreflect.ValueOfBytes(nil)
- case protoreflect.EnumKind:
- if evs := fd.Enum().Values(); evs.Len() > 0 {
- return protoreflect.ValueOfEnum(evs.Get(0).Number())
- }
- return protoreflect.ValueOfEnum(0)
- }
- }
-
- if len(dv.bytes) > 0 && !bytes.Equal(dv.bytes, dv.val.Bytes()) {
- // TODO: Avoid panic if we're running with the race detector
- // and instead spawn a goroutine that periodically resets
- // this value back to the original to induce a race.
- panic(fmt.Sprintf("detected mutation on the default bytes for %v", fd.FullName()))
- }
- return dv.val
-}
diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go
deleted file mode 100644
index d2f549497..000000000
--- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go
+++ /dev/null
@@ -1,560 +0,0 @@
-// Copyright 2019 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package filedesc
-
-import (
- "fmt"
- "sync"
-
- "google.golang.org/protobuf/encoding/protowire"
- "google.golang.org/protobuf/internal/genid"
- "google.golang.org/protobuf/internal/strs"
- "google.golang.org/protobuf/reflect/protoreflect"
-)
-
-// fileRaw is a data struct used when initializing a file descriptor from
-// a raw FileDescriptorProto.
-type fileRaw struct {
- builder Builder
- allEnums []Enum
- allMessages []Message
- allExtensions []Extension
- allServices []Service
-}
-
-func newRawFile(db Builder) *File {
- fd := &File{fileRaw: fileRaw{builder: db}}
- fd.initDecls(db.NumEnums, db.NumMessages, db.NumExtensions, db.NumServices)
- fd.unmarshalSeed(db.RawDescriptor)
-
- // Extended message targets are eagerly resolved since registration
- // needs this information at program init time.
- for i := range fd.allExtensions {
- xd := &fd.allExtensions[i]
- xd.L1.Extendee = fd.resolveMessageDependency(xd.L1.Extendee, listExtTargets, int32(i))
- }
-
- fd.checkDecls()
- return fd
-}
-
-// initDecls pre-allocates slices for the exact number of enums, messages
-// (including map entries), extensions, and services declared in the proto file.
-// This is done to avoid regrowing the slice, which would change the address
-// for any previously seen declaration.
-//
-// The alloc methods "allocates" slices by pulling from the capacity.
-func (fd *File) initDecls(numEnums, numMessages, numExtensions, numServices int32) {
- fd.allEnums = make([]Enum, 0, numEnums)
- fd.allMessages = make([]Message, 0, numMessages)
- fd.allExtensions = make([]Extension, 0, numExtensions)
- fd.allServices = make([]Service, 0, numServices)
-}
-
-func (fd *File) allocEnums(n int) []Enum {
- total := len(fd.allEnums)
- es := fd.allEnums[total : total+n]
- fd.allEnums = fd.allEnums[:total+n]
- return es
-}
-func (fd *File) allocMessages(n int) []Message {
- total := len(fd.allMessages)
- ms := fd.allMessages[total : total+n]
- fd.allMessages = fd.allMessages[:total+n]
- return ms
-}
-func (fd *File) allocExtensions(n int) []Extension {
- total := len(fd.allExtensions)
- xs := fd.allExtensions[total : total+n]
- fd.allExtensions = fd.allExtensions[:total+n]
- return xs
-}
-func (fd *File) allocServices(n int) []Service {
- total := len(fd.allServices)
- xs := fd.allServices[total : total+n]
- fd.allServices = fd.allServices[:total+n]
- return xs
-}
-
-// checkDecls performs a sanity check that the expected number of expected
-// declarations matches the number that were found in the descriptor proto.
-func (fd *File) checkDecls() {
- switch {
- case len(fd.allEnums) != cap(fd.allEnums):
- case len(fd.allMessages) != cap(fd.allMessages):
- case len(fd.allExtensions) != cap(fd.allExtensions):
- case len(fd.allServices) != cap(fd.allServices):
- default:
- return
- }
- panic("mismatching cardinality")
-}
-
-func (fd *File) unmarshalSeed(b []byte) {
- sb := getBuilder()
- defer putBuilder(sb)
-
- var prevField protoreflect.FieldNumber
- var numEnums, numMessages, numExtensions, numServices int
- var posEnums, posMessages, posExtensions, posServices int
- var options []byte
- b0 := b
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.FileDescriptorProto_Syntax_field_number:
- switch string(v) {
- case "proto2":
- fd.L1.Syntax = protoreflect.Proto2
- fd.L1.Edition = EditionProto2
- case "proto3":
- fd.L1.Syntax = protoreflect.Proto3
- fd.L1.Edition = EditionProto3
- case "editions":
- fd.L1.Syntax = protoreflect.Editions
- default:
- panic("invalid syntax")
- }
- case genid.FileDescriptorProto_Name_field_number:
- fd.L1.Path = sb.MakeString(v)
- case genid.FileDescriptorProto_Package_field_number:
- fd.L1.Package = protoreflect.FullName(sb.MakeString(v))
- case genid.FileDescriptorProto_Options_field_number:
- options = v
- case genid.FileDescriptorProto_EnumType_field_number:
- if prevField != genid.FileDescriptorProto_EnumType_field_number {
- if numEnums > 0 {
- panic("non-contiguous repeated field")
- }
- posEnums = len(b0) - len(b) - n - m
- }
- numEnums++
- case genid.FileDescriptorProto_MessageType_field_number:
- if prevField != genid.FileDescriptorProto_MessageType_field_number {
- if numMessages > 0 {
- panic("non-contiguous repeated field")
- }
- posMessages = len(b0) - len(b) - n - m
- }
- numMessages++
- case genid.FileDescriptorProto_Extension_field_number:
- if prevField != genid.FileDescriptorProto_Extension_field_number {
- if numExtensions > 0 {
- panic("non-contiguous repeated field")
- }
- posExtensions = len(b0) - len(b) - n - m
- }
- numExtensions++
- case genid.FileDescriptorProto_Service_field_number:
- if prevField != genid.FileDescriptorProto_Service_field_number {
- if numServices > 0 {
- panic("non-contiguous repeated field")
- }
- posServices = len(b0) - len(b) - n - m
- }
- numServices++
- }
- prevField = num
- case protowire.VarintType:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- switch num {
- case genid.FileDescriptorProto_Edition_field_number:
- fd.L1.Edition = Edition(v)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- prevField = -1 // ignore known field numbers of unknown wire type
- }
- }
-
- // If syntax is missing, it is assumed to be proto2.
- if fd.L1.Syntax == 0 {
- fd.L1.Syntax = protoreflect.Proto2
- fd.L1.Edition = EditionProto2
- }
-
- fd.L1.EditionFeatures = getFeaturesFor(fd.L1.Edition)
-
- // Parse editions features from options if any
- if options != nil {
- fd.unmarshalSeedOptions(options)
- }
-
- // Must allocate all declarations before parsing each descriptor type
- // to ensure we handled all descriptors in "flattened ordering".
- if numEnums > 0 {
- fd.L1.Enums.List = fd.allocEnums(numEnums)
- }
- if numMessages > 0 {
- fd.L1.Messages.List = fd.allocMessages(numMessages)
- }
- if numExtensions > 0 {
- fd.L1.Extensions.List = fd.allocExtensions(numExtensions)
- }
- if numServices > 0 {
- fd.L1.Services.List = fd.allocServices(numServices)
- }
-
- if numEnums > 0 {
- b := b0[posEnums:]
- for i := range fd.L1.Enums.List {
- _, n := protowire.ConsumeVarint(b)
- v, m := protowire.ConsumeBytes(b[n:])
- fd.L1.Enums.List[i].unmarshalSeed(v, sb, fd, fd, i)
- b = b[n+m:]
- }
- }
- if numMessages > 0 {
- b := b0[posMessages:]
- for i := range fd.L1.Messages.List {
- _, n := protowire.ConsumeVarint(b)
- v, m := protowire.ConsumeBytes(b[n:])
- fd.L1.Messages.List[i].unmarshalSeed(v, sb, fd, fd, i)
- b = b[n+m:]
- }
- }
- if numExtensions > 0 {
- b := b0[posExtensions:]
- for i := range fd.L1.Extensions.List {
- _, n := protowire.ConsumeVarint(b)
- v, m := protowire.ConsumeBytes(b[n:])
- fd.L1.Extensions.List[i].unmarshalSeed(v, sb, fd, fd, i)
- b = b[n+m:]
- }
- }
- if numServices > 0 {
- b := b0[posServices:]
- for i := range fd.L1.Services.List {
- _, n := protowire.ConsumeVarint(b)
- v, m := protowire.ConsumeBytes(b[n:])
- fd.L1.Services.List[i].unmarshalSeed(v, sb, fd, fd, i)
- b = b[n+m:]
- }
- }
-}
-
-func (fd *File) unmarshalSeedOptions(b []byte) {
- for b := b; len(b) > 0; {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.FileOptions_Features_field_number:
- if fd.Syntax() != protoreflect.Editions {
- panic(fmt.Sprintf("invalid descriptor: using edition features in a proto with syntax %s", fd.Syntax()))
- }
- fd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
-}
-
-func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {
- ed.L0.ParentFile = pf
- ed.L0.Parent = pd
- ed.L0.Index = i
- ed.L1.EditionFeatures = featuresFromParentDesc(ed.Parent())
-
- var numValues int
- for b := b; len(b) > 0; {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.EnumDescriptorProto_Name_field_number:
- ed.L0.FullName = appendFullName(sb, pd.FullName(), v)
- case genid.EnumDescriptorProto_Value_field_number:
- numValues++
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
-
- // Only construct enum value descriptors for top-level enums since
- // they are needed for registration.
- if pd != pf {
- return
- }
- ed.L1.eagerValues = true
- ed.L2 = new(EnumL2)
- ed.L2.Values.List = make([]EnumValue, numValues)
- for i := 0; len(b) > 0; {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.EnumDescriptorProto_Value_field_number:
- ed.L2.Values.List[i].unmarshalFull(v, sb, pf, ed, i)
- i++
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
-}
-
-func (md *Message) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {
- md.L0.ParentFile = pf
- md.L0.Parent = pd
- md.L0.Index = i
- md.L1.EditionFeatures = featuresFromParentDesc(md.Parent())
-
- var prevField protoreflect.FieldNumber
- var numEnums, numMessages, numExtensions int
- var posEnums, posMessages, posExtensions int
- b0 := b
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.DescriptorProto_Name_field_number:
- md.L0.FullName = appendFullName(sb, pd.FullName(), v)
- case genid.DescriptorProto_EnumType_field_number:
- if prevField != genid.DescriptorProto_EnumType_field_number {
- if numEnums > 0 {
- panic("non-contiguous repeated field")
- }
- posEnums = len(b0) - len(b) - n - m
- }
- numEnums++
- case genid.DescriptorProto_NestedType_field_number:
- if prevField != genid.DescriptorProto_NestedType_field_number {
- if numMessages > 0 {
- panic("non-contiguous repeated field")
- }
- posMessages = len(b0) - len(b) - n - m
- }
- numMessages++
- case genid.DescriptorProto_Extension_field_number:
- if prevField != genid.DescriptorProto_Extension_field_number {
- if numExtensions > 0 {
- panic("non-contiguous repeated field")
- }
- posExtensions = len(b0) - len(b) - n - m
- }
- numExtensions++
- case genid.DescriptorProto_Options_field_number:
- md.unmarshalSeedOptions(v)
- }
- prevField = num
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- prevField = -1 // ignore known field numbers of unknown wire type
- }
- }
-
- // Must allocate all declarations before parsing each descriptor type
- // to ensure we handled all descriptors in "flattened ordering".
- if numEnums > 0 {
- md.L1.Enums.List = pf.allocEnums(numEnums)
- }
- if numMessages > 0 {
- md.L1.Messages.List = pf.allocMessages(numMessages)
- }
- if numExtensions > 0 {
- md.L1.Extensions.List = pf.allocExtensions(numExtensions)
- }
-
- if numEnums > 0 {
- b := b0[posEnums:]
- for i := range md.L1.Enums.List {
- _, n := protowire.ConsumeVarint(b)
- v, m := protowire.ConsumeBytes(b[n:])
- md.L1.Enums.List[i].unmarshalSeed(v, sb, pf, md, i)
- b = b[n+m:]
- }
- }
- if numMessages > 0 {
- b := b0[posMessages:]
- for i := range md.L1.Messages.List {
- _, n := protowire.ConsumeVarint(b)
- v, m := protowire.ConsumeBytes(b[n:])
- md.L1.Messages.List[i].unmarshalSeed(v, sb, pf, md, i)
- b = b[n+m:]
- }
- }
- if numExtensions > 0 {
- b := b0[posExtensions:]
- for i := range md.L1.Extensions.List {
- _, n := protowire.ConsumeVarint(b)
- v, m := protowire.ConsumeBytes(b[n:])
- md.L1.Extensions.List[i].unmarshalSeed(v, sb, pf, md, i)
- b = b[n+m:]
- }
- }
-}
-
-func (md *Message) unmarshalSeedOptions(b []byte) {
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.VarintType:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- switch num {
- case genid.MessageOptions_MapEntry_field_number:
- md.L1.IsMapEntry = protowire.DecodeBool(v)
- case genid.MessageOptions_MessageSetWireFormat_field_number:
- md.L1.IsMessageSet = protowire.DecodeBool(v)
- }
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.MessageOptions_Features_field_number:
- md.L1.EditionFeatures = unmarshalFeatureSet(v, md.L1.EditionFeatures)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
-}
-
-func (xd *Extension) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {
- xd.L0.ParentFile = pf
- xd.L0.Parent = pd
- xd.L0.Index = i
- xd.L1.EditionFeatures = featuresFromParentDesc(pd)
-
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.VarintType:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- switch num {
- case genid.FieldDescriptorProto_Number_field_number:
- xd.L1.Number = protoreflect.FieldNumber(v)
- case genid.FieldDescriptorProto_Label_field_number:
- xd.L1.Cardinality = protoreflect.Cardinality(v)
- case genid.FieldDescriptorProto_Type_field_number:
- xd.L1.Kind = protoreflect.Kind(v)
- }
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.FieldDescriptorProto_Name_field_number:
- xd.L0.FullName = appendFullName(sb, pd.FullName(), v)
- case genid.FieldDescriptorProto_Extendee_field_number:
- xd.L1.Extendee = PlaceholderMessage(makeFullName(sb, v))
- case genid.FieldDescriptorProto_Options_field_number:
- xd.unmarshalOptions(v)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
-
- if xd.L1.Kind == protoreflect.MessageKind && xd.L1.EditionFeatures.IsDelimitedEncoded {
- xd.L1.Kind = protoreflect.GroupKind
- }
-}
-
-func (xd *Extension) unmarshalOptions(b []byte) {
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.VarintType:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- switch num {
- case genid.FieldOptions_Packed_field_number:
- xd.L1.EditionFeatures.IsPacked = protowire.DecodeBool(v)
- case genid.FieldOptions_Lazy_field_number:
- xd.L1.IsLazy = protowire.DecodeBool(v)
- }
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.FieldOptions_Features_field_number:
- xd.L1.EditionFeatures = unmarshalFeatureSet(v, xd.L1.EditionFeatures)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
-}
-
-func (sd *Service) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {
- sd.L0.ParentFile = pf
- sd.L0.Parent = pd
- sd.L0.Index = i
-
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.ServiceDescriptorProto_Name_field_number:
- sd.L0.FullName = appendFullName(sb, pd.FullName(), v)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
-}
-
-var nameBuilderPool = sync.Pool{
- New: func() any { return new(strs.Builder) },
-}
-
-func getBuilder() *strs.Builder {
- return nameBuilderPool.Get().(*strs.Builder)
-}
-func putBuilder(b *strs.Builder) {
- nameBuilderPool.Put(b)
-}
-
-// makeFullName converts b to a protoreflect.FullName,
-// where b must start with a leading dot.
-func makeFullName(sb *strs.Builder, b []byte) protoreflect.FullName {
- if len(b) == 0 || b[0] != '.' {
- panic("name reference must be fully qualified")
- }
- return protoreflect.FullName(sb.MakeString(b[1:]))
-}
-
-func appendFullName(sb *strs.Builder, prefix protoreflect.FullName, suffix []byte) protoreflect.FullName {
- return sb.AppendFullName(prefix, protoreflect.Name(strs.UnsafeString(suffix)))
-}
diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go
deleted file mode 100644
index 67a51b327..000000000
--- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go
+++ /dev/null
@@ -1,703 +0,0 @@
-// Copyright 2019 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package filedesc
-
-import (
- "reflect"
- "sync"
-
- "google.golang.org/protobuf/encoding/protowire"
- "google.golang.org/protobuf/internal/descopts"
- "google.golang.org/protobuf/internal/genid"
- "google.golang.org/protobuf/internal/strs"
- "google.golang.org/protobuf/proto"
- "google.golang.org/protobuf/reflect/protoreflect"
-)
-
-func (fd *File) lazyRawInit() {
- fd.unmarshalFull(fd.builder.RawDescriptor)
- fd.resolveMessages()
- fd.resolveExtensions()
- fd.resolveServices()
-}
-
-func (file *File) resolveMessages() {
- var depIdx int32
- for i := range file.allMessages {
- md := &file.allMessages[i]
-
- // Resolve message field dependencies.
- for j := range md.L2.Fields.List {
- fd := &md.L2.Fields.List[j]
-
- // Weak fields are resolved upon actual use.
- if fd.L1.IsWeak {
- continue
- }
-
- // Resolve message field dependency.
- switch fd.L1.Kind {
- case protoreflect.EnumKind:
- fd.L1.Enum = file.resolveEnumDependency(fd.L1.Enum, listFieldDeps, depIdx)
- depIdx++
- case protoreflect.MessageKind, protoreflect.GroupKind:
- fd.L1.Message = file.resolveMessageDependency(fd.L1.Message, listFieldDeps, depIdx)
- depIdx++
- if fd.L1.Kind == protoreflect.GroupKind && (fd.IsMap() || fd.IsMapEntry()) {
- // A map field might inherit delimited encoding from a file-wide default feature.
- // But maps never actually use delimited encoding. (At least for now...)
- fd.L1.Kind = protoreflect.MessageKind
- }
- }
-
- // Default is resolved here since it depends on Enum being resolved.
- if v := fd.L1.Default.val; v.IsValid() {
- fd.L1.Default = unmarshalDefault(v.Bytes(), fd.L1.Kind, file, fd.L1.Enum)
- }
- }
- }
-}
-
-func (file *File) resolveExtensions() {
- var depIdx int32
- for i := range file.allExtensions {
- xd := &file.allExtensions[i]
-
- // Resolve extension field dependency.
- switch xd.L1.Kind {
- case protoreflect.EnumKind:
- xd.L2.Enum = file.resolveEnumDependency(xd.L2.Enum, listExtDeps, depIdx)
- depIdx++
- case protoreflect.MessageKind, protoreflect.GroupKind:
- xd.L2.Message = file.resolveMessageDependency(xd.L2.Message, listExtDeps, depIdx)
- depIdx++
- }
-
- // Default is resolved here since it depends on Enum being resolved.
- if v := xd.L2.Default.val; v.IsValid() {
- xd.L2.Default = unmarshalDefault(v.Bytes(), xd.L1.Kind, file, xd.L2.Enum)
- }
- }
-}
-
-func (file *File) resolveServices() {
- var depIdx int32
- for i := range file.allServices {
- sd := &file.allServices[i]
-
- // Resolve method dependencies.
- for j := range sd.L2.Methods.List {
- md := &sd.L2.Methods.List[j]
- md.L1.Input = file.resolveMessageDependency(md.L1.Input, listMethInDeps, depIdx)
- md.L1.Output = file.resolveMessageDependency(md.L1.Output, listMethOutDeps, depIdx)
- depIdx++
- }
- }
-}
-
-func (file *File) resolveEnumDependency(ed protoreflect.EnumDescriptor, i, j int32) protoreflect.EnumDescriptor {
- r := file.builder.FileRegistry
- if r, ok := r.(resolverByIndex); ok {
- if ed2 := r.FindEnumByIndex(i, j, file.allEnums, file.allMessages); ed2 != nil {
- return ed2
- }
- }
- for i := range file.allEnums {
- if ed2 := &file.allEnums[i]; ed2.L0.FullName == ed.FullName() {
- return ed2
- }
- }
- if d, _ := r.FindDescriptorByName(ed.FullName()); d != nil {
- return d.(protoreflect.EnumDescriptor)
- }
- return ed
-}
-
-func (file *File) resolveMessageDependency(md protoreflect.MessageDescriptor, i, j int32) protoreflect.MessageDescriptor {
- r := file.builder.FileRegistry
- if r, ok := r.(resolverByIndex); ok {
- if md2 := r.FindMessageByIndex(i, j, file.allEnums, file.allMessages); md2 != nil {
- return md2
- }
- }
- for i := range file.allMessages {
- if md2 := &file.allMessages[i]; md2.L0.FullName == md.FullName() {
- return md2
- }
- }
- if d, _ := r.FindDescriptorByName(md.FullName()); d != nil {
- return d.(protoreflect.MessageDescriptor)
- }
- return md
-}
-
-func (fd *File) unmarshalFull(b []byte) {
- sb := getBuilder()
- defer putBuilder(sb)
-
- var enumIdx, messageIdx, extensionIdx, serviceIdx int
- var rawOptions []byte
- fd.L2 = new(FileL2)
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.VarintType:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- switch num {
- case genid.FileDescriptorProto_PublicDependency_field_number:
- fd.L2.Imports[v].IsPublic = true
- case genid.FileDescriptorProto_WeakDependency_field_number:
- fd.L2.Imports[v].IsWeak = true
- }
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.FileDescriptorProto_Dependency_field_number:
- path := sb.MakeString(v)
- imp, _ := fd.builder.FileRegistry.FindFileByPath(path)
- if imp == nil {
- imp = PlaceholderFile(path)
- }
- fd.L2.Imports = append(fd.L2.Imports, protoreflect.FileImport{FileDescriptor: imp})
- case genid.FileDescriptorProto_EnumType_field_number:
- fd.L1.Enums.List[enumIdx].unmarshalFull(v, sb)
- enumIdx++
- case genid.FileDescriptorProto_MessageType_field_number:
- fd.L1.Messages.List[messageIdx].unmarshalFull(v, sb)
- messageIdx++
- case genid.FileDescriptorProto_Extension_field_number:
- fd.L1.Extensions.List[extensionIdx].unmarshalFull(v, sb)
- extensionIdx++
- case genid.FileDescriptorProto_Service_field_number:
- fd.L1.Services.List[serviceIdx].unmarshalFull(v, sb)
- serviceIdx++
- case genid.FileDescriptorProto_Options_field_number:
- rawOptions = appendOptions(rawOptions, v)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
- fd.L2.Options = fd.builder.optionsUnmarshaler(&descopts.File, rawOptions)
-}
-
-func (ed *Enum) unmarshalFull(b []byte, sb *strs.Builder) {
- var rawValues [][]byte
- var rawOptions []byte
- if !ed.L1.eagerValues {
- ed.L2 = new(EnumL2)
- }
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.EnumDescriptorProto_Value_field_number:
- rawValues = append(rawValues, v)
- case genid.EnumDescriptorProto_ReservedName_field_number:
- ed.L2.ReservedNames.List = append(ed.L2.ReservedNames.List, protoreflect.Name(sb.MakeString(v)))
- case genid.EnumDescriptorProto_ReservedRange_field_number:
- ed.L2.ReservedRanges.List = append(ed.L2.ReservedRanges.List, unmarshalEnumReservedRange(v))
- case genid.EnumDescriptorProto_Options_field_number:
- rawOptions = appendOptions(rawOptions, v)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
- if !ed.L1.eagerValues && len(rawValues) > 0 {
- ed.L2.Values.List = make([]EnumValue, len(rawValues))
- for i, b := range rawValues {
- ed.L2.Values.List[i].unmarshalFull(b, sb, ed.L0.ParentFile, ed, i)
- }
- }
- ed.L2.Options = ed.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Enum, rawOptions)
-}
-
-func unmarshalEnumReservedRange(b []byte) (r [2]protoreflect.EnumNumber) {
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.VarintType:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- switch num {
- case genid.EnumDescriptorProto_EnumReservedRange_Start_field_number:
- r[0] = protoreflect.EnumNumber(v)
- case genid.EnumDescriptorProto_EnumReservedRange_End_field_number:
- r[1] = protoreflect.EnumNumber(v)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
- return r
-}
-
-func (vd *EnumValue) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {
- vd.L0.ParentFile = pf
- vd.L0.Parent = pd
- vd.L0.Index = i
-
- var rawOptions []byte
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.VarintType:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- switch num {
- case genid.EnumValueDescriptorProto_Number_field_number:
- vd.L1.Number = protoreflect.EnumNumber(v)
- }
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.EnumValueDescriptorProto_Name_field_number:
- // NOTE: Enum values are in the same scope as the enum parent.
- vd.L0.FullName = appendFullName(sb, pd.Parent().FullName(), v)
- case genid.EnumValueDescriptorProto_Options_field_number:
- rawOptions = appendOptions(rawOptions, v)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
- vd.L1.Options = pf.builder.optionsUnmarshaler(&descopts.EnumValue, rawOptions)
-}
-
-func (md *Message) unmarshalFull(b []byte, sb *strs.Builder) {
- var rawFields, rawOneofs [][]byte
- var enumIdx, messageIdx, extensionIdx int
- var rawOptions []byte
- md.L2 = new(MessageL2)
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.DescriptorProto_Field_field_number:
- rawFields = append(rawFields, v)
- case genid.DescriptorProto_OneofDecl_field_number:
- rawOneofs = append(rawOneofs, v)
- case genid.DescriptorProto_ReservedName_field_number:
- md.L2.ReservedNames.List = append(md.L2.ReservedNames.List, protoreflect.Name(sb.MakeString(v)))
- case genid.DescriptorProto_ReservedRange_field_number:
- md.L2.ReservedRanges.List = append(md.L2.ReservedRanges.List, unmarshalMessageReservedRange(v))
- case genid.DescriptorProto_ExtensionRange_field_number:
- r, rawOptions := unmarshalMessageExtensionRange(v)
- opts := md.L0.ParentFile.builder.optionsUnmarshaler(&descopts.ExtensionRange, rawOptions)
- md.L2.ExtensionRanges.List = append(md.L2.ExtensionRanges.List, r)
- md.L2.ExtensionRangeOptions = append(md.L2.ExtensionRangeOptions, opts)
- case genid.DescriptorProto_EnumType_field_number:
- md.L1.Enums.List[enumIdx].unmarshalFull(v, sb)
- enumIdx++
- case genid.DescriptorProto_NestedType_field_number:
- md.L1.Messages.List[messageIdx].unmarshalFull(v, sb)
- messageIdx++
- case genid.DescriptorProto_Extension_field_number:
- md.L1.Extensions.List[extensionIdx].unmarshalFull(v, sb)
- extensionIdx++
- case genid.DescriptorProto_Options_field_number:
- md.unmarshalOptions(v)
- rawOptions = appendOptions(rawOptions, v)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
- if len(rawFields) > 0 || len(rawOneofs) > 0 {
- md.L2.Fields.List = make([]Field, len(rawFields))
- md.L2.Oneofs.List = make([]Oneof, len(rawOneofs))
- for i, b := range rawFields {
- fd := &md.L2.Fields.List[i]
- fd.unmarshalFull(b, sb, md.L0.ParentFile, md, i)
- if fd.L1.Cardinality == protoreflect.Required {
- md.L2.RequiredNumbers.List = append(md.L2.RequiredNumbers.List, fd.L1.Number)
- }
- }
- for i, b := range rawOneofs {
- od := &md.L2.Oneofs.List[i]
- od.unmarshalFull(b, sb, md.L0.ParentFile, md, i)
- }
- }
- md.L2.Options = md.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Message, rawOptions)
-}
-
-func (md *Message) unmarshalOptions(b []byte) {
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.VarintType:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- switch num {
- case genid.MessageOptions_MapEntry_field_number:
- md.L1.IsMapEntry = protowire.DecodeBool(v)
- case genid.MessageOptions_MessageSetWireFormat_field_number:
- md.L1.IsMessageSet = protowire.DecodeBool(v)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
-}
-
-func unmarshalMessageReservedRange(b []byte) (r [2]protoreflect.FieldNumber) {
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.VarintType:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- switch num {
- case genid.DescriptorProto_ReservedRange_Start_field_number:
- r[0] = protoreflect.FieldNumber(v)
- case genid.DescriptorProto_ReservedRange_End_field_number:
- r[1] = protoreflect.FieldNumber(v)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
- return r
-}
-
-func unmarshalMessageExtensionRange(b []byte) (r [2]protoreflect.FieldNumber, rawOptions []byte) {
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.VarintType:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- switch num {
- case genid.DescriptorProto_ExtensionRange_Start_field_number:
- r[0] = protoreflect.FieldNumber(v)
- case genid.DescriptorProto_ExtensionRange_End_field_number:
- r[1] = protoreflect.FieldNumber(v)
- }
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.DescriptorProto_ExtensionRange_Options_field_number:
- rawOptions = appendOptions(rawOptions, v)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
- return r, rawOptions
-}
-
-func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {
- fd.L0.ParentFile = pf
- fd.L0.Parent = pd
- fd.L0.Index = i
- fd.L1.EditionFeatures = featuresFromParentDesc(fd.Parent())
-
- var rawTypeName []byte
- var rawOptions []byte
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.VarintType:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- switch num {
- case genid.FieldDescriptorProto_Number_field_number:
- fd.L1.Number = protoreflect.FieldNumber(v)
- case genid.FieldDescriptorProto_Label_field_number:
- fd.L1.Cardinality = protoreflect.Cardinality(v)
- case genid.FieldDescriptorProto_Type_field_number:
- fd.L1.Kind = protoreflect.Kind(v)
- case genid.FieldDescriptorProto_OneofIndex_field_number:
- // In Message.unmarshalFull, we allocate slices for both
- // the field and oneof descriptors before unmarshaling either
- // of them. This ensures pointers to slice elements are stable.
- od := &pd.(*Message).L2.Oneofs.List[v]
- od.L1.Fields.List = append(od.L1.Fields.List, fd)
- if fd.L1.ContainingOneof != nil {
- panic("oneof type already set")
- }
- fd.L1.ContainingOneof = od
- case genid.FieldDescriptorProto_Proto3Optional_field_number:
- fd.L1.IsProto3Optional = protowire.DecodeBool(v)
- }
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.FieldDescriptorProto_Name_field_number:
- fd.L0.FullName = appendFullName(sb, pd.FullName(), v)
- case genid.FieldDescriptorProto_JsonName_field_number:
- fd.L1.StringName.InitJSON(sb.MakeString(v))
- case genid.FieldDescriptorProto_DefaultValue_field_number:
- fd.L1.Default.val = protoreflect.ValueOfBytes(v) // temporarily store as bytes; later resolved in resolveMessages
- case genid.FieldDescriptorProto_TypeName_field_number:
- rawTypeName = v
- case genid.FieldDescriptorProto_Options_field_number:
- fd.unmarshalOptions(v)
- rawOptions = appendOptions(rawOptions, v)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
- if fd.L1.Kind == protoreflect.MessageKind && fd.L1.EditionFeatures.IsDelimitedEncoded {
- fd.L1.Kind = protoreflect.GroupKind
- }
- if fd.L1.EditionFeatures.IsLegacyRequired {
- fd.L1.Cardinality = protoreflect.Required
- }
- if rawTypeName != nil {
- name := makeFullName(sb, rawTypeName)
- switch fd.L1.Kind {
- case protoreflect.EnumKind:
- fd.L1.Enum = PlaceholderEnum(name)
- case protoreflect.MessageKind, protoreflect.GroupKind:
- fd.L1.Message = PlaceholderMessage(name)
- }
- }
- fd.L1.Options = pf.builder.optionsUnmarshaler(&descopts.Field, rawOptions)
-}
-
-func (fd *Field) unmarshalOptions(b []byte) {
- const FieldOptions_EnforceUTF8 = 13
-
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.VarintType:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- switch num {
- case genid.FieldOptions_Packed_field_number:
- fd.L1.EditionFeatures.IsPacked = protowire.DecodeBool(v)
- case genid.FieldOptions_Weak_field_number:
- fd.L1.IsWeak = protowire.DecodeBool(v)
- case genid.FieldOptions_Lazy_field_number:
- fd.L1.IsLazy = protowire.DecodeBool(v)
- case FieldOptions_EnforceUTF8:
- fd.L1.EditionFeatures.IsUTF8Validated = protowire.DecodeBool(v)
- }
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.FieldOptions_Features_field_number:
- fd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
-}
-
-func (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {
- od.L0.ParentFile = pf
- od.L0.Parent = pd
- od.L0.Index = i
-
- var rawOptions []byte
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.OneofDescriptorProto_Name_field_number:
- od.L0.FullName = appendFullName(sb, pd.FullName(), v)
- case genid.OneofDescriptorProto_Options_field_number:
- rawOptions = appendOptions(rawOptions, v)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
- od.L1.Options = pf.builder.optionsUnmarshaler(&descopts.Oneof, rawOptions)
-}
-
-func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) {
- var rawTypeName []byte
- var rawOptions []byte
- xd.L2 = new(ExtensionL2)
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.VarintType:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- switch num {
- case genid.FieldDescriptorProto_Proto3Optional_field_number:
- xd.L2.IsProto3Optional = protowire.DecodeBool(v)
- }
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.FieldDescriptorProto_JsonName_field_number:
- xd.L2.StringName.InitJSON(sb.MakeString(v))
- case genid.FieldDescriptorProto_DefaultValue_field_number:
- xd.L2.Default.val = protoreflect.ValueOfBytes(v) // temporarily store as bytes; later resolved in resolveExtensions
- case genid.FieldDescriptorProto_TypeName_field_number:
- rawTypeName = v
- case genid.FieldDescriptorProto_Options_field_number:
- rawOptions = appendOptions(rawOptions, v)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
- if rawTypeName != nil {
- name := makeFullName(sb, rawTypeName)
- switch xd.L1.Kind {
- case protoreflect.EnumKind:
- xd.L2.Enum = PlaceholderEnum(name)
- case protoreflect.MessageKind, protoreflect.GroupKind:
- xd.L2.Message = PlaceholderMessage(name)
- }
- }
- xd.L2.Options = xd.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Field, rawOptions)
-}
-
-func (sd *Service) unmarshalFull(b []byte, sb *strs.Builder) {
- var rawMethods [][]byte
- var rawOptions []byte
- sd.L2 = new(ServiceL2)
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.ServiceDescriptorProto_Method_field_number:
- rawMethods = append(rawMethods, v)
- case genid.ServiceDescriptorProto_Options_field_number:
- rawOptions = appendOptions(rawOptions, v)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
- if len(rawMethods) > 0 {
- sd.L2.Methods.List = make([]Method, len(rawMethods))
- for i, b := range rawMethods {
- sd.L2.Methods.List[i].unmarshalFull(b, sb, sd.L0.ParentFile, sd, i)
- }
- }
- sd.L2.Options = sd.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Service, rawOptions)
-}
-
-func (md *Method) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {
- md.L0.ParentFile = pf
- md.L0.Parent = pd
- md.L0.Index = i
-
- var rawOptions []byte
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.VarintType:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- switch num {
- case genid.MethodDescriptorProto_ClientStreaming_field_number:
- md.L1.IsStreamingClient = protowire.DecodeBool(v)
- case genid.MethodDescriptorProto_ServerStreaming_field_number:
- md.L1.IsStreamingServer = protowire.DecodeBool(v)
- }
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.MethodDescriptorProto_Name_field_number:
- md.L0.FullName = appendFullName(sb, pd.FullName(), v)
- case genid.MethodDescriptorProto_InputType_field_number:
- md.L1.Input = PlaceholderMessage(makeFullName(sb, v))
- case genid.MethodDescriptorProto_OutputType_field_number:
- md.L1.Output = PlaceholderMessage(makeFullName(sb, v))
- case genid.MethodDescriptorProto_Options_field_number:
- rawOptions = appendOptions(rawOptions, v)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
- md.L1.Options = pf.builder.optionsUnmarshaler(&descopts.Method, rawOptions)
-}
-
-// appendOptions appends src to dst, where the returned slice is never nil.
-// This is necessary to distinguish between empty and unpopulated options.
-func appendOptions(dst, src []byte) []byte {
- if dst == nil {
- dst = []byte{}
- }
- return append(dst, src...)
-}
-
-// optionsUnmarshaler constructs a lazy unmarshal function for an options message.
-//
-// The type of message to unmarshal to is passed as a pointer since the
-// vars in descopts may not yet be populated at the time this function is called.
-func (db *Builder) optionsUnmarshaler(p *protoreflect.ProtoMessage, b []byte) func() protoreflect.ProtoMessage {
- if b == nil {
- return nil
- }
- var opts protoreflect.ProtoMessage
- var once sync.Once
- return func() protoreflect.ProtoMessage {
- once.Do(func() {
- if *p == nil {
- panic("Descriptor.Options called without importing the descriptor package")
- }
- opts = reflect.New(reflect.TypeOf(*p).Elem()).Interface().(protoreflect.ProtoMessage)
- if err := (proto.UnmarshalOptions{
- AllowPartial: true,
- Resolver: db.TypeResolver,
- }).Unmarshal(b, opts); err != nil {
- panic(err)
- }
- })
- return opts
- }
-}
diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go
deleted file mode 100644
index e3b6587da..000000000
--- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go
+++ /dev/null
@@ -1,457 +0,0 @@
-// Copyright 2019 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package filedesc
-
-import (
- "fmt"
- "math"
- "sort"
- "sync"
-
- "google.golang.org/protobuf/internal/genid"
-
- "google.golang.org/protobuf/encoding/protowire"
- "google.golang.org/protobuf/internal/descfmt"
- "google.golang.org/protobuf/internal/errors"
- "google.golang.org/protobuf/internal/pragma"
- "google.golang.org/protobuf/reflect/protoreflect"
-)
-
-type FileImports []protoreflect.FileImport
-
-func (p *FileImports) Len() int { return len(*p) }
-func (p *FileImports) Get(i int) protoreflect.FileImport { return (*p)[i] }
-func (p *FileImports) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) }
-func (p *FileImports) ProtoInternal(pragma.DoNotImplement) {}
-
-type Names struct {
- List []protoreflect.Name
- once sync.Once
- has map[protoreflect.Name]int // protected by once
-}
-
-func (p *Names) Len() int { return len(p.List) }
-func (p *Names) Get(i int) protoreflect.Name { return p.List[i] }
-func (p *Names) Has(s protoreflect.Name) bool { return p.lazyInit().has[s] > 0 }
-func (p *Names) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) }
-func (p *Names) ProtoInternal(pragma.DoNotImplement) {}
-func (p *Names) lazyInit() *Names {
- p.once.Do(func() {
- if len(p.List) > 0 {
- p.has = make(map[protoreflect.Name]int, len(p.List))
- for _, s := range p.List {
- p.has[s] = p.has[s] + 1
- }
- }
- })
- return p
-}
-
-// CheckValid reports any errors with the set of names with an error message
-// that completes the sentence: "ranges is invalid because it has ..."
-func (p *Names) CheckValid() error {
- for s, n := range p.lazyInit().has {
- switch {
- case n > 1:
- return errors.New("duplicate name: %q", s)
- case false && !s.IsValid():
- // NOTE: The C++ implementation does not validate the identifier.
- // See https://github.com/protocolbuffers/protobuf/issues/6335.
- return errors.New("invalid name: %q", s)
- }
- }
- return nil
-}
-
-type EnumRanges struct {
- List [][2]protoreflect.EnumNumber // start inclusive; end inclusive
- once sync.Once
- sorted [][2]protoreflect.EnumNumber // protected by once
-}
-
-func (p *EnumRanges) Len() int { return len(p.List) }
-func (p *EnumRanges) Get(i int) [2]protoreflect.EnumNumber { return p.List[i] }
-func (p *EnumRanges) Has(n protoreflect.EnumNumber) bool {
- for ls := p.lazyInit().sorted; len(ls) > 0; {
- i := len(ls) / 2
- switch r := enumRange(ls[i]); {
- case n < r.Start():
- ls = ls[:i] // search lower
- case n > r.End():
- ls = ls[i+1:] // search upper
- default:
- return true
- }
- }
- return false
-}
-func (p *EnumRanges) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) }
-func (p *EnumRanges) ProtoInternal(pragma.DoNotImplement) {}
-func (p *EnumRanges) lazyInit() *EnumRanges {
- p.once.Do(func() {
- p.sorted = append(p.sorted, p.List...)
- sort.Slice(p.sorted, func(i, j int) bool {
- return p.sorted[i][0] < p.sorted[j][0]
- })
- })
- return p
-}
-
-// CheckValid reports any errors with the set of names with an error message
-// that completes the sentence: "ranges is invalid because it has ..."
-func (p *EnumRanges) CheckValid() error {
- var rp enumRange
- for i, r := range p.lazyInit().sorted {
- r := enumRange(r)
- switch {
- case !(r.Start() <= r.End()):
- return errors.New("invalid range: %v", r)
- case !(rp.End() < r.Start()) && i > 0:
- return errors.New("overlapping ranges: %v with %v", rp, r)
- }
- rp = r
- }
- return nil
-}
-
-type enumRange [2]protoreflect.EnumNumber
-
-func (r enumRange) Start() protoreflect.EnumNumber { return r[0] } // inclusive
-func (r enumRange) End() protoreflect.EnumNumber { return r[1] } // inclusive
-func (r enumRange) String() string {
- if r.Start() == r.End() {
- return fmt.Sprintf("%d", r.Start())
- }
- return fmt.Sprintf("%d to %d", r.Start(), r.End())
-}
-
-type FieldRanges struct {
- List [][2]protoreflect.FieldNumber // start inclusive; end exclusive
- once sync.Once
- sorted [][2]protoreflect.FieldNumber // protected by once
-}
-
-func (p *FieldRanges) Len() int { return len(p.List) }
-func (p *FieldRanges) Get(i int) [2]protoreflect.FieldNumber { return p.List[i] }
-func (p *FieldRanges) Has(n protoreflect.FieldNumber) bool {
- for ls := p.lazyInit().sorted; len(ls) > 0; {
- i := len(ls) / 2
- switch r := fieldRange(ls[i]); {
- case n < r.Start():
- ls = ls[:i] // search lower
- case n > r.End():
- ls = ls[i+1:] // search upper
- default:
- return true
- }
- }
- return false
-}
-func (p *FieldRanges) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) }
-func (p *FieldRanges) ProtoInternal(pragma.DoNotImplement) {}
-func (p *FieldRanges) lazyInit() *FieldRanges {
- p.once.Do(func() {
- p.sorted = append(p.sorted, p.List...)
- sort.Slice(p.sorted, func(i, j int) bool {
- return p.sorted[i][0] < p.sorted[j][0]
- })
- })
- return p
-}
-
-// CheckValid reports any errors with the set of ranges with an error message
-// that completes the sentence: "ranges is invalid because it has ..."
-func (p *FieldRanges) CheckValid(isMessageSet bool) error {
- var rp fieldRange
- for i, r := range p.lazyInit().sorted {
- r := fieldRange(r)
- switch {
- case !isValidFieldNumber(r.Start(), isMessageSet):
- return errors.New("invalid field number: %d", r.Start())
- case !isValidFieldNumber(r.End(), isMessageSet):
- return errors.New("invalid field number: %d", r.End())
- case !(r.Start() <= r.End()):
- return errors.New("invalid range: %v", r)
- case !(rp.End() < r.Start()) && i > 0:
- return errors.New("overlapping ranges: %v with %v", rp, r)
- }
- rp = r
- }
- return nil
-}
-
-// isValidFieldNumber reports whether the field number is valid.
-// Unlike the FieldNumber.IsValid method, it allows ranges that cover the
-// reserved number range.
-func isValidFieldNumber(n protoreflect.FieldNumber, isMessageSet bool) bool {
- return protowire.MinValidNumber <= n && (n <= protowire.MaxValidNumber || isMessageSet)
-}
-
-// CheckOverlap reports an error if p and q overlap.
-func (p *FieldRanges) CheckOverlap(q *FieldRanges) error {
- rps := p.lazyInit().sorted
- rqs := q.lazyInit().sorted
- for pi, qi := 0, 0; pi < len(rps) && qi < len(rqs); {
- rp := fieldRange(rps[pi])
- rq := fieldRange(rqs[qi])
- if !(rp.End() < rq.Start() || rq.End() < rp.Start()) {
- return errors.New("overlapping ranges: %v with %v", rp, rq)
- }
- if rp.Start() < rq.Start() {
- pi++
- } else {
- qi++
- }
- }
- return nil
-}
-
-type fieldRange [2]protoreflect.FieldNumber
-
-func (r fieldRange) Start() protoreflect.FieldNumber { return r[0] } // inclusive
-func (r fieldRange) End() protoreflect.FieldNumber { return r[1] - 1 } // inclusive
-func (r fieldRange) String() string {
- if r.Start() == r.End() {
- return fmt.Sprintf("%d", r.Start())
- }
- return fmt.Sprintf("%d to %d", r.Start(), r.End())
-}
-
-type FieldNumbers struct {
- List []protoreflect.FieldNumber
- once sync.Once
- has map[protoreflect.FieldNumber]struct{} // protected by once
-}
-
-func (p *FieldNumbers) Len() int { return len(p.List) }
-func (p *FieldNumbers) Get(i int) protoreflect.FieldNumber { return p.List[i] }
-func (p *FieldNumbers) Has(n protoreflect.FieldNumber) bool {
- p.once.Do(func() {
- if len(p.List) > 0 {
- p.has = make(map[protoreflect.FieldNumber]struct{}, len(p.List))
- for _, n := range p.List {
- p.has[n] = struct{}{}
- }
- }
- })
- _, ok := p.has[n]
- return ok
-}
-func (p *FieldNumbers) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) }
-func (p *FieldNumbers) ProtoInternal(pragma.DoNotImplement) {}
-
-type OneofFields struct {
- List []protoreflect.FieldDescriptor
- once sync.Once
- byName map[protoreflect.Name]protoreflect.FieldDescriptor // protected by once
- byJSON map[string]protoreflect.FieldDescriptor // protected by once
- byText map[string]protoreflect.FieldDescriptor // protected by once
- byNum map[protoreflect.FieldNumber]protoreflect.FieldDescriptor // protected by once
-}
-
-func (p *OneofFields) Len() int { return len(p.List) }
-func (p *OneofFields) Get(i int) protoreflect.FieldDescriptor { return p.List[i] }
-func (p *OneofFields) ByName(s protoreflect.Name) protoreflect.FieldDescriptor {
- return p.lazyInit().byName[s]
-}
-func (p *OneofFields) ByJSONName(s string) protoreflect.FieldDescriptor {
- return p.lazyInit().byJSON[s]
-}
-func (p *OneofFields) ByTextName(s string) protoreflect.FieldDescriptor {
- return p.lazyInit().byText[s]
-}
-func (p *OneofFields) ByNumber(n protoreflect.FieldNumber) protoreflect.FieldDescriptor {
- return p.lazyInit().byNum[n]
-}
-func (p *OneofFields) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) }
-func (p *OneofFields) ProtoInternal(pragma.DoNotImplement) {}
-
-func (p *OneofFields) lazyInit() *OneofFields {
- p.once.Do(func() {
- if len(p.List) > 0 {
- p.byName = make(map[protoreflect.Name]protoreflect.FieldDescriptor, len(p.List))
- p.byJSON = make(map[string]protoreflect.FieldDescriptor, len(p.List))
- p.byText = make(map[string]protoreflect.FieldDescriptor, len(p.List))
- p.byNum = make(map[protoreflect.FieldNumber]protoreflect.FieldDescriptor, len(p.List))
- for _, f := range p.List {
- // Field names and numbers are guaranteed to be unique.
- p.byName[f.Name()] = f
- p.byJSON[f.JSONName()] = f
- p.byText[f.TextName()] = f
- p.byNum[f.Number()] = f
- }
- }
- })
- return p
-}
-
-type SourceLocations struct {
- // List is a list of SourceLocations.
- // The SourceLocation.Next field does not need to be populated
- // as it will be lazily populated upon first need.
- List []protoreflect.SourceLocation
-
- // File is the parent file descriptor that these locations are relative to.
- // If non-nil, ByDescriptor verifies that the provided descriptor
- // is a child of this file descriptor.
- File protoreflect.FileDescriptor
-
- once sync.Once
- byPath map[pathKey]int
-}
-
-func (p *SourceLocations) Len() int { return len(p.List) }
-func (p *SourceLocations) Get(i int) protoreflect.SourceLocation { return p.lazyInit().List[i] }
-func (p *SourceLocations) byKey(k pathKey) protoreflect.SourceLocation {
- if i, ok := p.lazyInit().byPath[k]; ok {
- return p.List[i]
- }
- return protoreflect.SourceLocation{}
-}
-func (p *SourceLocations) ByPath(path protoreflect.SourcePath) protoreflect.SourceLocation {
- return p.byKey(newPathKey(path))
-}
-func (p *SourceLocations) ByDescriptor(desc protoreflect.Descriptor) protoreflect.SourceLocation {
- if p.File != nil && desc != nil && p.File != desc.ParentFile() {
- return protoreflect.SourceLocation{} // mismatching parent files
- }
- var pathArr [16]int32
- path := pathArr[:0]
- for {
- switch desc.(type) {
- case protoreflect.FileDescriptor:
- // Reverse the path since it was constructed in reverse.
- for i, j := 0, len(path)-1; i < j; i, j = i+1, j-1 {
- path[i], path[j] = path[j], path[i]
- }
- return p.byKey(newPathKey(path))
- case protoreflect.MessageDescriptor:
- path = append(path, int32(desc.Index()))
- desc = desc.Parent()
- switch desc.(type) {
- case protoreflect.FileDescriptor:
- path = append(path, int32(genid.FileDescriptorProto_MessageType_field_number))
- case protoreflect.MessageDescriptor:
- path = append(path, int32(genid.DescriptorProto_NestedType_field_number))
- default:
- return protoreflect.SourceLocation{}
- }
- case protoreflect.FieldDescriptor:
- isExtension := desc.(protoreflect.FieldDescriptor).IsExtension()
- path = append(path, int32(desc.Index()))
- desc = desc.Parent()
- if isExtension {
- switch desc.(type) {
- case protoreflect.FileDescriptor:
- path = append(path, int32(genid.FileDescriptorProto_Extension_field_number))
- case protoreflect.MessageDescriptor:
- path = append(path, int32(genid.DescriptorProto_Extension_field_number))
- default:
- return protoreflect.SourceLocation{}
- }
- } else {
- switch desc.(type) {
- case protoreflect.MessageDescriptor:
- path = append(path, int32(genid.DescriptorProto_Field_field_number))
- default:
- return protoreflect.SourceLocation{}
- }
- }
- case protoreflect.OneofDescriptor:
- path = append(path, int32(desc.Index()))
- desc = desc.Parent()
- switch desc.(type) {
- case protoreflect.MessageDescriptor:
- path = append(path, int32(genid.DescriptorProto_OneofDecl_field_number))
- default:
- return protoreflect.SourceLocation{}
- }
- case protoreflect.EnumDescriptor:
- path = append(path, int32(desc.Index()))
- desc = desc.Parent()
- switch desc.(type) {
- case protoreflect.FileDescriptor:
- path = append(path, int32(genid.FileDescriptorProto_EnumType_field_number))
- case protoreflect.MessageDescriptor:
- path = append(path, int32(genid.DescriptorProto_EnumType_field_number))
- default:
- return protoreflect.SourceLocation{}
- }
- case protoreflect.EnumValueDescriptor:
- path = append(path, int32(desc.Index()))
- desc = desc.Parent()
- switch desc.(type) {
- case protoreflect.EnumDescriptor:
- path = append(path, int32(genid.EnumDescriptorProto_Value_field_number))
- default:
- return protoreflect.SourceLocation{}
- }
- case protoreflect.ServiceDescriptor:
- path = append(path, int32(desc.Index()))
- desc = desc.Parent()
- switch desc.(type) {
- case protoreflect.FileDescriptor:
- path = append(path, int32(genid.FileDescriptorProto_Service_field_number))
- default:
- return protoreflect.SourceLocation{}
- }
- case protoreflect.MethodDescriptor:
- path = append(path, int32(desc.Index()))
- desc = desc.Parent()
- switch desc.(type) {
- case protoreflect.ServiceDescriptor:
- path = append(path, int32(genid.ServiceDescriptorProto_Method_field_number))
- default:
- return protoreflect.SourceLocation{}
- }
- default:
- return protoreflect.SourceLocation{}
- }
- }
-}
-func (p *SourceLocations) lazyInit() *SourceLocations {
- p.once.Do(func() {
- if len(p.List) > 0 {
- // Collect all the indexes for a given path.
- pathIdxs := make(map[pathKey][]int, len(p.List))
- for i, l := range p.List {
- k := newPathKey(l.Path)
- pathIdxs[k] = append(pathIdxs[k], i)
- }
-
- // Update the next index for all locations.
- p.byPath = make(map[pathKey]int, len(p.List))
- for k, idxs := range pathIdxs {
- for i := 0; i < len(idxs)-1; i++ {
- p.List[idxs[i]].Next = idxs[i+1]
- }
- p.List[idxs[len(idxs)-1]].Next = 0
- p.byPath[k] = idxs[0] // record the first location for this path
- }
- }
- })
- return p
-}
-func (p *SourceLocations) ProtoInternal(pragma.DoNotImplement) {}
-
-// pathKey is a comparable representation of protoreflect.SourcePath.
-type pathKey struct {
- arr [16]uint8 // first n-1 path segments; last element is the length
- str string // used if the path does not fit in arr
-}
-
-func newPathKey(p protoreflect.SourcePath) (k pathKey) {
- if len(p) < len(k.arr) {
- for i, ps := range p {
- if ps < 0 || math.MaxUint8 <= ps {
- return pathKey{str: p.String()}
- }
- k.arr[i] = uint8(ps)
- }
- k.arr[len(k.arr)-1] = uint8(len(p))
- return k
- }
- return pathKey{str: p.String()}
-}
diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go
deleted file mode 100644
index f4107c05f..000000000
--- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go
+++ /dev/null
@@ -1,367 +0,0 @@
-// Copyright 2018 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Code generated by generate-types. DO NOT EDIT.
-
-package filedesc
-
-import (
- "fmt"
- "strings"
- "sync"
-
- "google.golang.org/protobuf/internal/descfmt"
- "google.golang.org/protobuf/internal/pragma"
- "google.golang.org/protobuf/reflect/protoreflect"
-)
-
-type Enums struct {
- List []Enum
- once sync.Once
- byName map[protoreflect.Name]*Enum // protected by once
-}
-
-func (p *Enums) Len() int {
- return len(p.List)
-}
-func (p *Enums) Get(i int) protoreflect.EnumDescriptor {
- return &p.List[i]
-}
-func (p *Enums) ByName(s protoreflect.Name) protoreflect.EnumDescriptor {
- if d := p.lazyInit().byName[s]; d != nil {
- return d
- }
- return nil
-}
-func (p *Enums) Format(s fmt.State, r rune) {
- descfmt.FormatList(s, r, p)
-}
-func (p *Enums) ProtoInternal(pragma.DoNotImplement) {}
-func (p *Enums) lazyInit() *Enums {
- p.once.Do(func() {
- if len(p.List) > 0 {
- p.byName = make(map[protoreflect.Name]*Enum, len(p.List))
- for i := range p.List {
- d := &p.List[i]
- if _, ok := p.byName[d.Name()]; !ok {
- p.byName[d.Name()] = d
- }
- }
- }
- })
- return p
-}
-
-type EnumValues struct {
- List []EnumValue
- once sync.Once
- byName map[protoreflect.Name]*EnumValue // protected by once
- byNum map[protoreflect.EnumNumber]*EnumValue // protected by once
-}
-
-func (p *EnumValues) Len() int {
- return len(p.List)
-}
-func (p *EnumValues) Get(i int) protoreflect.EnumValueDescriptor {
- return &p.List[i]
-}
-func (p *EnumValues) ByName(s protoreflect.Name) protoreflect.EnumValueDescriptor {
- if d := p.lazyInit().byName[s]; d != nil {
- return d
- }
- return nil
-}
-func (p *EnumValues) ByNumber(n protoreflect.EnumNumber) protoreflect.EnumValueDescriptor {
- if d := p.lazyInit().byNum[n]; d != nil {
- return d
- }
- return nil
-}
-func (p *EnumValues) Format(s fmt.State, r rune) {
- descfmt.FormatList(s, r, p)
-}
-func (p *EnumValues) ProtoInternal(pragma.DoNotImplement) {}
-func (p *EnumValues) lazyInit() *EnumValues {
- p.once.Do(func() {
- if len(p.List) > 0 {
- p.byName = make(map[protoreflect.Name]*EnumValue, len(p.List))
- p.byNum = make(map[protoreflect.EnumNumber]*EnumValue, len(p.List))
- for i := range p.List {
- d := &p.List[i]
- if _, ok := p.byName[d.Name()]; !ok {
- p.byName[d.Name()] = d
- }
- if _, ok := p.byNum[d.Number()]; !ok {
- p.byNum[d.Number()] = d
- }
- }
- }
- })
- return p
-}
-
-type Messages struct {
- List []Message
- once sync.Once
- byName map[protoreflect.Name]*Message // protected by once
-}
-
-func (p *Messages) Len() int {
- return len(p.List)
-}
-func (p *Messages) Get(i int) protoreflect.MessageDescriptor {
- return &p.List[i]
-}
-func (p *Messages) ByName(s protoreflect.Name) protoreflect.MessageDescriptor {
- if d := p.lazyInit().byName[s]; d != nil {
- return d
- }
- return nil
-}
-func (p *Messages) Format(s fmt.State, r rune) {
- descfmt.FormatList(s, r, p)
-}
-func (p *Messages) ProtoInternal(pragma.DoNotImplement) {}
-func (p *Messages) lazyInit() *Messages {
- p.once.Do(func() {
- if len(p.List) > 0 {
- p.byName = make(map[protoreflect.Name]*Message, len(p.List))
- for i := range p.List {
- d := &p.List[i]
- if _, ok := p.byName[d.Name()]; !ok {
- p.byName[d.Name()] = d
- }
- }
- }
- })
- return p
-}
-
-type Fields struct {
- List []Field
- once sync.Once
- byName map[protoreflect.Name]*Field // protected by once
- byJSON map[string]*Field // protected by once
- byText map[string]*Field // protected by once
- byNum map[protoreflect.FieldNumber]*Field // protected by once
-}
-
-func (p *Fields) Len() int {
- return len(p.List)
-}
-func (p *Fields) Get(i int) protoreflect.FieldDescriptor {
- return &p.List[i]
-}
-func (p *Fields) ByName(s protoreflect.Name) protoreflect.FieldDescriptor {
- if d := p.lazyInit().byName[s]; d != nil {
- return d
- }
- return nil
-}
-func (p *Fields) ByJSONName(s string) protoreflect.FieldDescriptor {
- if d := p.lazyInit().byJSON[s]; d != nil {
- return d
- }
- return nil
-}
-func (p *Fields) ByTextName(s string) protoreflect.FieldDescriptor {
- if d := p.lazyInit().byText[s]; d != nil {
- return d
- }
- return nil
-}
-func (p *Fields) ByNumber(n protoreflect.FieldNumber) protoreflect.FieldDescriptor {
- if d := p.lazyInit().byNum[n]; d != nil {
- return d
- }
- return nil
-}
-func (p *Fields) Format(s fmt.State, r rune) {
- descfmt.FormatList(s, r, p)
-}
-func (p *Fields) ProtoInternal(pragma.DoNotImplement) {}
-func (p *Fields) lazyInit() *Fields {
- p.once.Do(func() {
- if len(p.List) > 0 {
- p.byName = make(map[protoreflect.Name]*Field, len(p.List))
- p.byJSON = make(map[string]*Field, len(p.List))
- p.byText = make(map[string]*Field, len(p.List))
- p.byNum = make(map[protoreflect.FieldNumber]*Field, len(p.List))
- for i := range p.List {
- d := &p.List[i]
- if _, ok := p.byName[d.Name()]; !ok {
- p.byName[d.Name()] = d
- }
- if _, ok := p.byJSON[d.JSONName()]; !ok {
- p.byJSON[d.JSONName()] = d
- }
- if _, ok := p.byText[d.TextName()]; !ok {
- p.byText[d.TextName()] = d
- }
- if isGroupLike(d) {
- lowerJSONName := strings.ToLower(d.JSONName())
- if _, ok := p.byJSON[lowerJSONName]; !ok {
- p.byJSON[lowerJSONName] = d
- }
- lowerTextName := strings.ToLower(d.TextName())
- if _, ok := p.byText[lowerTextName]; !ok {
- p.byText[lowerTextName] = d
- }
- }
- if _, ok := p.byNum[d.Number()]; !ok {
- p.byNum[d.Number()] = d
- }
- }
- }
- })
- return p
-}
-
-type Oneofs struct {
- List []Oneof
- once sync.Once
- byName map[protoreflect.Name]*Oneof // protected by once
-}
-
-func (p *Oneofs) Len() int {
- return len(p.List)
-}
-func (p *Oneofs) Get(i int) protoreflect.OneofDescriptor {
- return &p.List[i]
-}
-func (p *Oneofs) ByName(s protoreflect.Name) protoreflect.OneofDescriptor {
- if d := p.lazyInit().byName[s]; d != nil {
- return d
- }
- return nil
-}
-func (p *Oneofs) Format(s fmt.State, r rune) {
- descfmt.FormatList(s, r, p)
-}
-func (p *Oneofs) ProtoInternal(pragma.DoNotImplement) {}
-func (p *Oneofs) lazyInit() *Oneofs {
- p.once.Do(func() {
- if len(p.List) > 0 {
- p.byName = make(map[protoreflect.Name]*Oneof, len(p.List))
- for i := range p.List {
- d := &p.List[i]
- if _, ok := p.byName[d.Name()]; !ok {
- p.byName[d.Name()] = d
- }
- }
- }
- })
- return p
-}
-
-type Extensions struct {
- List []Extension
- once sync.Once
- byName map[protoreflect.Name]*Extension // protected by once
-}
-
-func (p *Extensions) Len() int {
- return len(p.List)
-}
-func (p *Extensions) Get(i int) protoreflect.ExtensionDescriptor {
- return &p.List[i]
-}
-func (p *Extensions) ByName(s protoreflect.Name) protoreflect.ExtensionDescriptor {
- if d := p.lazyInit().byName[s]; d != nil {
- return d
- }
- return nil
-}
-func (p *Extensions) Format(s fmt.State, r rune) {
- descfmt.FormatList(s, r, p)
-}
-func (p *Extensions) ProtoInternal(pragma.DoNotImplement) {}
-func (p *Extensions) lazyInit() *Extensions {
- p.once.Do(func() {
- if len(p.List) > 0 {
- p.byName = make(map[protoreflect.Name]*Extension, len(p.List))
- for i := range p.List {
- d := &p.List[i]
- if _, ok := p.byName[d.Name()]; !ok {
- p.byName[d.Name()] = d
- }
- }
- }
- })
- return p
-}
-
-type Services struct {
- List []Service
- once sync.Once
- byName map[protoreflect.Name]*Service // protected by once
-}
-
-func (p *Services) Len() int {
- return len(p.List)
-}
-func (p *Services) Get(i int) protoreflect.ServiceDescriptor {
- return &p.List[i]
-}
-func (p *Services) ByName(s protoreflect.Name) protoreflect.ServiceDescriptor {
- if d := p.lazyInit().byName[s]; d != nil {
- return d
- }
- return nil
-}
-func (p *Services) Format(s fmt.State, r rune) {
- descfmt.FormatList(s, r, p)
-}
-func (p *Services) ProtoInternal(pragma.DoNotImplement) {}
-func (p *Services) lazyInit() *Services {
- p.once.Do(func() {
- if len(p.List) > 0 {
- p.byName = make(map[protoreflect.Name]*Service, len(p.List))
- for i := range p.List {
- d := &p.List[i]
- if _, ok := p.byName[d.Name()]; !ok {
- p.byName[d.Name()] = d
- }
- }
- }
- })
- return p
-}
-
-type Methods struct {
- List []Method
- once sync.Once
- byName map[protoreflect.Name]*Method // protected by once
-}
-
-func (p *Methods) Len() int {
- return len(p.List)
-}
-func (p *Methods) Get(i int) protoreflect.MethodDescriptor {
- return &p.List[i]
-}
-func (p *Methods) ByName(s protoreflect.Name) protoreflect.MethodDescriptor {
- if d := p.lazyInit().byName[s]; d != nil {
- return d
- }
- return nil
-}
-func (p *Methods) Format(s fmt.State, r rune) {
- descfmt.FormatList(s, r, p)
-}
-func (p *Methods) ProtoInternal(pragma.DoNotImplement) {}
-func (p *Methods) lazyInit() *Methods {
- p.once.Do(func() {
- if len(p.List) > 0 {
- p.byName = make(map[protoreflect.Name]*Method, len(p.List))
- for i := range p.List {
- d := &p.List[i]
- if _, ok := p.byName[d.Name()]; !ok {
- p.byName[d.Name()] = d
- }
- }
- }
- })
- return p
-}
diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/editions.go b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go
deleted file mode 100644
index 10132c9b3..000000000
--- a/vendor/google.golang.org/protobuf/internal/filedesc/editions.go
+++ /dev/null
@@ -1,164 +0,0 @@
-// Copyright 2024 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package filedesc
-
-import (
- "fmt"
-
- "google.golang.org/protobuf/encoding/protowire"
- "google.golang.org/protobuf/internal/editiondefaults"
- "google.golang.org/protobuf/internal/genid"
- "google.golang.org/protobuf/reflect/protoreflect"
-)
-
-var defaultsCache = make(map[Edition]EditionFeatures)
-var defaultsKeys = []Edition{}
-
-func init() {
- unmarshalEditionDefaults(editiondefaults.Defaults)
- SurrogateProto2.L1.EditionFeatures = getFeaturesFor(EditionProto2)
- SurrogateProto3.L1.EditionFeatures = getFeaturesFor(EditionProto3)
- SurrogateEdition2023.L1.EditionFeatures = getFeaturesFor(Edition2023)
-}
-
-func unmarshalGoFeature(b []byte, parent EditionFeatures) EditionFeatures {
- for len(b) > 0 {
- num, _, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch num {
- case genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- parent.GenerateLegacyUnmarshalJSON = protowire.DecodeBool(v)
- case genid.GoFeatures_ApiLevel_field_number:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- parent.APILevel = int(v)
- case genid.GoFeatures_StripEnumPrefix_field_number:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- parent.StripEnumPrefix = int(v)
- default:
- panic(fmt.Sprintf("unkown field number %d while unmarshalling GoFeatures", num))
- }
- }
- return parent
-}
-
-func unmarshalFeatureSet(b []byte, parent EditionFeatures) EditionFeatures {
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.VarintType:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- switch num {
- case genid.FeatureSet_FieldPresence_field_number:
- parent.IsFieldPresence = v == genid.FeatureSet_EXPLICIT_enum_value || v == genid.FeatureSet_LEGACY_REQUIRED_enum_value
- parent.IsLegacyRequired = v == genid.FeatureSet_LEGACY_REQUIRED_enum_value
- case genid.FeatureSet_EnumType_field_number:
- parent.IsOpenEnum = v == genid.FeatureSet_OPEN_enum_value
- case genid.FeatureSet_RepeatedFieldEncoding_field_number:
- parent.IsPacked = v == genid.FeatureSet_PACKED_enum_value
- case genid.FeatureSet_Utf8Validation_field_number:
- parent.IsUTF8Validated = v == genid.FeatureSet_VERIFY_enum_value
- case genid.FeatureSet_MessageEncoding_field_number:
- parent.IsDelimitedEncoded = v == genid.FeatureSet_DELIMITED_enum_value
- case genid.FeatureSet_JsonFormat_field_number:
- parent.IsJSONCompliant = v == genid.FeatureSet_ALLOW_enum_value
- default:
- panic(fmt.Sprintf("unkown field number %d while unmarshalling FeatureSet", num))
- }
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.FeatureSet_Go_ext_number:
- parent = unmarshalGoFeature(v, parent)
- }
- }
- }
-
- return parent
-}
-
-func featuresFromParentDesc(parentDesc protoreflect.Descriptor) EditionFeatures {
- var parentFS EditionFeatures
- switch p := parentDesc.(type) {
- case *File:
- parentFS = p.L1.EditionFeatures
- case *Message:
- parentFS = p.L1.EditionFeatures
- default:
- panic(fmt.Sprintf("unknown parent type %T", parentDesc))
- }
- return parentFS
-}
-
-func unmarshalEditionDefault(b []byte) {
- var ed Edition
- var fs EditionFeatures
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.VarintType:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- switch num {
- case genid.FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number:
- ed = Edition(v)
- }
- case protowire.BytesType:
- v, m := protowire.ConsumeBytes(b)
- b = b[m:]
- switch num {
- case genid.FeatureSetDefaults_FeatureSetEditionDefault_FixedFeatures_field_number:
- fs = unmarshalFeatureSet(v, fs)
- case genid.FeatureSetDefaults_FeatureSetEditionDefault_OverridableFeatures_field_number:
- fs = unmarshalFeatureSet(v, fs)
- }
- }
- }
- defaultsCache[ed] = fs
- defaultsKeys = append(defaultsKeys, ed)
-}
-
-func unmarshalEditionDefaults(b []byte) {
- for len(b) > 0 {
- num, _, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch num {
- case genid.FeatureSetDefaults_Defaults_field_number:
- def, m := protowire.ConsumeBytes(b)
- b = b[m:]
- unmarshalEditionDefault(def)
- case genid.FeatureSetDefaults_MinimumEdition_field_number,
- genid.FeatureSetDefaults_MaximumEdition_field_number:
- // We don't care about the minimum and maximum editions. If the
- // edition we are looking for later on is not in the cache we know
- // it is outside of the range between minimum and maximum edition.
- _, m := protowire.ConsumeVarint(b)
- b = b[m:]
- default:
- panic(fmt.Sprintf("unkown field number %d while unmarshalling EditionDefault", num))
- }
- }
-}
-
-func getFeaturesFor(ed Edition) EditionFeatures {
- match := EditionUnknown
- for _, key := range defaultsKeys {
- if key > ed {
- break
- }
- match = key
- }
- if match == EditionUnknown {
- panic(fmt.Sprintf("unsupported edition: %v", ed))
- }
- return defaultsCache[match]
-}
diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go b/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go
deleted file mode 100644
index bfb3b8417..000000000
--- a/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go
+++ /dev/null
@@ -1,110 +0,0 @@
-// Copyright 2019 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package filedesc
-
-import (
- "google.golang.org/protobuf/internal/descopts"
- "google.golang.org/protobuf/internal/pragma"
- "google.golang.org/protobuf/reflect/protoreflect"
-)
-
-var (
- emptyNames = new(Names)
- emptyEnumRanges = new(EnumRanges)
- emptyFieldRanges = new(FieldRanges)
- emptyFieldNumbers = new(FieldNumbers)
- emptySourceLocations = new(SourceLocations)
-
- emptyFiles = new(FileImports)
- emptyMessages = new(Messages)
- emptyFields = new(Fields)
- emptyOneofs = new(Oneofs)
- emptyEnums = new(Enums)
- emptyEnumValues = new(EnumValues)
- emptyExtensions = new(Extensions)
- emptyServices = new(Services)
-)
-
-// PlaceholderFile is a placeholder, representing only the file path.
-type PlaceholderFile string
-
-func (f PlaceholderFile) ParentFile() protoreflect.FileDescriptor { return f }
-func (f PlaceholderFile) Parent() protoreflect.Descriptor { return nil }
-func (f PlaceholderFile) Index() int { return 0 }
-func (f PlaceholderFile) Syntax() protoreflect.Syntax { return 0 }
-func (f PlaceholderFile) Name() protoreflect.Name { return "" }
-func (f PlaceholderFile) FullName() protoreflect.FullName { return "" }
-func (f PlaceholderFile) IsPlaceholder() bool { return true }
-func (f PlaceholderFile) Options() protoreflect.ProtoMessage { return descopts.File }
-func (f PlaceholderFile) Path() string { return string(f) }
-func (f PlaceholderFile) Package() protoreflect.FullName { return "" }
-func (f PlaceholderFile) Imports() protoreflect.FileImports { return emptyFiles }
-func (f PlaceholderFile) Messages() protoreflect.MessageDescriptors { return emptyMessages }
-func (f PlaceholderFile) Enums() protoreflect.EnumDescriptors { return emptyEnums }
-func (f PlaceholderFile) Extensions() protoreflect.ExtensionDescriptors { return emptyExtensions }
-func (f PlaceholderFile) Services() protoreflect.ServiceDescriptors { return emptyServices }
-func (f PlaceholderFile) SourceLocations() protoreflect.SourceLocations { return emptySourceLocations }
-func (f PlaceholderFile) ProtoType(protoreflect.FileDescriptor) { return }
-func (f PlaceholderFile) ProtoInternal(pragma.DoNotImplement) { return }
-
-// PlaceholderEnum is a placeholder, representing only the full name.
-type PlaceholderEnum protoreflect.FullName
-
-func (e PlaceholderEnum) ParentFile() protoreflect.FileDescriptor { return nil }
-func (e PlaceholderEnum) Parent() protoreflect.Descriptor { return nil }
-func (e PlaceholderEnum) Index() int { return 0 }
-func (e PlaceholderEnum) Syntax() protoreflect.Syntax { return 0 }
-func (e PlaceholderEnum) Name() protoreflect.Name { return protoreflect.FullName(e).Name() }
-func (e PlaceholderEnum) FullName() protoreflect.FullName { return protoreflect.FullName(e) }
-func (e PlaceholderEnum) IsPlaceholder() bool { return true }
-func (e PlaceholderEnum) Options() protoreflect.ProtoMessage { return descopts.Enum }
-func (e PlaceholderEnum) Values() protoreflect.EnumValueDescriptors { return emptyEnumValues }
-func (e PlaceholderEnum) ReservedNames() protoreflect.Names { return emptyNames }
-func (e PlaceholderEnum) ReservedRanges() protoreflect.EnumRanges { return emptyEnumRanges }
-func (e PlaceholderEnum) IsClosed() bool { return false }
-func (e PlaceholderEnum) ProtoType(protoreflect.EnumDescriptor) { return }
-func (e PlaceholderEnum) ProtoInternal(pragma.DoNotImplement) { return }
-
-// PlaceholderEnumValue is a placeholder, representing only the full name.
-type PlaceholderEnumValue protoreflect.FullName
-
-func (e PlaceholderEnumValue) ParentFile() protoreflect.FileDescriptor { return nil }
-func (e PlaceholderEnumValue) Parent() protoreflect.Descriptor { return nil }
-func (e PlaceholderEnumValue) Index() int { return 0 }
-func (e PlaceholderEnumValue) Syntax() protoreflect.Syntax { return 0 }
-func (e PlaceholderEnumValue) Name() protoreflect.Name { return protoreflect.FullName(e).Name() }
-func (e PlaceholderEnumValue) FullName() protoreflect.FullName { return protoreflect.FullName(e) }
-func (e PlaceholderEnumValue) IsPlaceholder() bool { return true }
-func (e PlaceholderEnumValue) Options() protoreflect.ProtoMessage { return descopts.EnumValue }
-func (e PlaceholderEnumValue) Number() protoreflect.EnumNumber { return 0 }
-func (e PlaceholderEnumValue) ProtoType(protoreflect.EnumValueDescriptor) { return }
-func (e PlaceholderEnumValue) ProtoInternal(pragma.DoNotImplement) { return }
-
-// PlaceholderMessage is a placeholder, representing only the full name.
-type PlaceholderMessage protoreflect.FullName
-
-func (m PlaceholderMessage) ParentFile() protoreflect.FileDescriptor { return nil }
-func (m PlaceholderMessage) Parent() protoreflect.Descriptor { return nil }
-func (m PlaceholderMessage) Index() int { return 0 }
-func (m PlaceholderMessage) Syntax() protoreflect.Syntax { return 0 }
-func (m PlaceholderMessage) Name() protoreflect.Name { return protoreflect.FullName(m).Name() }
-func (m PlaceholderMessage) FullName() protoreflect.FullName { return protoreflect.FullName(m) }
-func (m PlaceholderMessage) IsPlaceholder() bool { return true }
-func (m PlaceholderMessage) Options() protoreflect.ProtoMessage { return descopts.Message }
-func (m PlaceholderMessage) IsMapEntry() bool { return false }
-func (m PlaceholderMessage) Fields() protoreflect.FieldDescriptors { return emptyFields }
-func (m PlaceholderMessage) Oneofs() protoreflect.OneofDescriptors { return emptyOneofs }
-func (m PlaceholderMessage) ReservedNames() protoreflect.Names { return emptyNames }
-func (m PlaceholderMessage) ReservedRanges() protoreflect.FieldRanges { return emptyFieldRanges }
-func (m PlaceholderMessage) RequiredNumbers() protoreflect.FieldNumbers { return emptyFieldNumbers }
-func (m PlaceholderMessage) ExtensionRanges() protoreflect.FieldRanges { return emptyFieldRanges }
-func (m PlaceholderMessage) ExtensionRangeOptions(int) protoreflect.ProtoMessage {
- panic("index out of range")
-}
-func (m PlaceholderMessage) Messages() protoreflect.MessageDescriptors { return emptyMessages }
-func (m PlaceholderMessage) Enums() protoreflect.EnumDescriptors { return emptyEnums }
-func (m PlaceholderMessage) Extensions() protoreflect.ExtensionDescriptors { return emptyExtensions }
-func (m PlaceholderMessage) ProtoType(protoreflect.MessageDescriptor) { return }
-func (m PlaceholderMessage) ProtoInternal(pragma.DoNotImplement) { return }