mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 10:03:42 +08:00 
			
		
		
		
	vendor: update buildkit v0.14-dev version 549891b
Brings in formatter for lint requests. Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
		
							
								
								
									
										29
									
								
								vendor/google.golang.org/protobuf/reflect/protodesc/desc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								vendor/google.golang.org/protobuf/reflect/protodesc/desc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -3,11 +3,11 @@
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
// Package protodesc provides functionality for converting
 | 
			
		||||
// FileDescriptorProto messages to/from protoreflect.FileDescriptor values.
 | 
			
		||||
// FileDescriptorProto messages to/from [protoreflect.FileDescriptor] values.
 | 
			
		||||
//
 | 
			
		||||
// The google.protobuf.FileDescriptorProto is a protobuf message that describes
 | 
			
		||||
// the type information for a .proto file in a form that is easily serializable.
 | 
			
		||||
// The protoreflect.FileDescriptor is a more structured representation of
 | 
			
		||||
// The [protoreflect.FileDescriptor] is a more structured representation of
 | 
			
		||||
// the FileDescriptorProto message where references and remote dependencies
 | 
			
		||||
// can be directly followed.
 | 
			
		||||
package protodesc
 | 
			
		||||
@@ -24,11 +24,11 @@ import (
 | 
			
		||||
	"google.golang.org/protobuf/types/descriptorpb"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Resolver is the resolver used by NewFile to resolve dependencies.
 | 
			
		||||
// Resolver is the resolver used by [NewFile] to resolve dependencies.
 | 
			
		||||
// The enums and messages provided must belong to some parent file,
 | 
			
		||||
// which is also registered.
 | 
			
		||||
//
 | 
			
		||||
// It is implemented by protoregistry.Files.
 | 
			
		||||
// It is implemented by [protoregistry.Files].
 | 
			
		||||
type Resolver interface {
 | 
			
		||||
	FindFileByPath(string) (protoreflect.FileDescriptor, error)
 | 
			
		||||
	FindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error)
 | 
			
		||||
@@ -61,19 +61,19 @@ type FileOptions struct {
 | 
			
		||||
	AllowUnresolvable bool
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewFile creates a new protoreflect.FileDescriptor from the provided
 | 
			
		||||
// file descriptor message. See FileOptions.New for more information.
 | 
			
		||||
// NewFile creates a new [protoreflect.FileDescriptor] from the provided
 | 
			
		||||
// file descriptor message. See [FileOptions.New] for more information.
 | 
			
		||||
func NewFile(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) {
 | 
			
		||||
	return FileOptions{}.New(fd, r)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewFiles creates a new protoregistry.Files from the provided
 | 
			
		||||
// FileDescriptorSet message. See FileOptions.NewFiles for more information.
 | 
			
		||||
// NewFiles creates a new [protoregistry.Files] from the provided
 | 
			
		||||
// FileDescriptorSet message. See [FileOptions.NewFiles] for more information.
 | 
			
		||||
func NewFiles(fd *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) {
 | 
			
		||||
	return FileOptions{}.NewFiles(fd)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// New creates a new protoreflect.FileDescriptor from the provided
 | 
			
		||||
// New creates a new [protoreflect.FileDescriptor] from the provided
 | 
			
		||||
// file descriptor message. The file must represent a valid proto file according
 | 
			
		||||
// to protobuf semantics. The returned descriptor is a deep copy of the input.
 | 
			
		||||
//
 | 
			
		||||
@@ -93,9 +93,15 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot
 | 
			
		||||
		f.L1.Syntax = protoreflect.Proto2
 | 
			
		||||
	case "proto3":
 | 
			
		||||
		f.L1.Syntax = protoreflect.Proto3
 | 
			
		||||
	case "editions":
 | 
			
		||||
		f.L1.Syntax = protoreflect.Editions
 | 
			
		||||
		f.L1.Edition = fromEditionProto(fd.GetEdition())
 | 
			
		||||
	default:
 | 
			
		||||
		return nil, errors.New("invalid syntax: %q", fd.GetSyntax())
 | 
			
		||||
	}
 | 
			
		||||
	if f.L1.Syntax == protoreflect.Editions && (fd.GetEdition() < SupportedEditionsMinimum || fd.GetEdition() > SupportedEditionsMaximum) {
 | 
			
		||||
		return nil, errors.New("use of edition %v not yet supported by the Go Protobuf runtime", fd.GetEdition())
 | 
			
		||||
	}
 | 
			
		||||
	f.L1.Path = fd.GetName()
 | 
			
		||||
	if f.L1.Path == "" {
 | 
			
		||||
		return nil, errors.New("file path must be populated")
 | 
			
		||||
@@ -108,6 +114,9 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot
 | 
			
		||||
		opts = proto.Clone(opts).(*descriptorpb.FileOptions)
 | 
			
		||||
		f.L2.Options = func() protoreflect.ProtoMessage { return opts }
 | 
			
		||||
	}
 | 
			
		||||
	if f.L1.Syntax == protoreflect.Editions {
 | 
			
		||||
		initFileDescFromFeatureSet(f, fd.GetOptions().GetFeatures())
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	f.L2.Imports = make(filedesc.FileImports, len(fd.GetDependency()))
 | 
			
		||||
	for _, i := range fd.GetPublicDependency() {
 | 
			
		||||
@@ -231,7 +240,7 @@ func (is importSet) importPublic(imps protoreflect.FileImports) {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewFiles creates a new protoregistry.Files from the provided
 | 
			
		||||
// NewFiles creates a new [protoregistry.Files] from the provided
 | 
			
		||||
// FileDescriptorSet message. The descriptor set must include only
 | 
			
		||||
// valid files according to protobuf semantics. The returned descriptors
 | 
			
		||||
// are a deep copy of the input.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										56
									
								
								vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										56
									
								
								vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -28,6 +28,7 @@ func (r descsByName) initEnumDeclarations(eds []*descriptorpb.EnumDescriptorProt
 | 
			
		||||
			opts = proto.Clone(opts).(*descriptorpb.EnumOptions)
 | 
			
		||||
			e.L2.Options = func() protoreflect.ProtoMessage { return opts }
 | 
			
		||||
		}
 | 
			
		||||
		e.L1.EditionFeatures = mergeEditionFeatures(parent, ed.GetOptions().GetFeatures())
 | 
			
		||||
		for _, s := range ed.GetReservedName() {
 | 
			
		||||
			e.L2.ReservedNames.List = append(e.L2.ReservedNames.List, protoreflect.Name(s))
 | 
			
		||||
		}
 | 
			
		||||
@@ -68,6 +69,9 @@ func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProt
 | 
			
		||||
		if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
		if m.Base.L0.ParentFile.Syntax() == protoreflect.Editions {
 | 
			
		||||
			m.L1.EditionFeatures = mergeEditionFeatures(parent, md.GetOptions().GetFeatures())
 | 
			
		||||
		}
 | 
			
		||||
		if opts := md.GetOptions(); opts != nil {
 | 
			
		||||
			opts = proto.Clone(opts).(*descriptorpb.MessageOptions)
 | 
			
		||||
			m.L2.Options = func() protoreflect.ProtoMessage { return opts }
 | 
			
		||||
@@ -114,6 +118,27 @@ func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProt
 | 
			
		||||
	return ms, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// canBePacked returns whether the field can use packed encoding:
 | 
			
		||||
// https://protobuf.dev/programming-guides/encoding/#packed
 | 
			
		||||
func canBePacked(fd *descriptorpb.FieldDescriptorProto) bool {
 | 
			
		||||
	if fd.GetLabel() != descriptorpb.FieldDescriptorProto_LABEL_REPEATED {
 | 
			
		||||
		return false // not a repeated field
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	switch protoreflect.Kind(fd.GetType()) {
 | 
			
		||||
	case protoreflect.MessageKind, protoreflect.GroupKind:
 | 
			
		||||
		return false // not a scalar type field
 | 
			
		||||
 | 
			
		||||
	case protoreflect.StringKind, protoreflect.BytesKind:
 | 
			
		||||
		// string and bytes can explicitly not be declared as packed,
 | 
			
		||||
		// see https://protobuf.dev/programming-guides/encoding/#packed
 | 
			
		||||
		return false
 | 
			
		||||
 | 
			
		||||
	default:
 | 
			
		||||
		return true
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (fs []filedesc.Field, err error) {
 | 
			
		||||
	fs = make([]filedesc.Field, len(fds)) // allocate up-front to ensure stable pointers
 | 
			
		||||
	for i, fd := range fds {
 | 
			
		||||
@@ -137,6 +162,34 @@ func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDesc
 | 
			
		||||
		if fd.JsonName != nil {
 | 
			
		||||
			f.L1.StringName.InitJSON(fd.GetJsonName())
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if f.Base.L0.ParentFile.Syntax() == protoreflect.Editions {
 | 
			
		||||
			f.L1.EditionFeatures = mergeEditionFeatures(parent, fd.GetOptions().GetFeatures())
 | 
			
		||||
 | 
			
		||||
			if f.L1.EditionFeatures.IsLegacyRequired {
 | 
			
		||||
				f.L1.Cardinality = protoreflect.Required
 | 
			
		||||
			}
 | 
			
		||||
			// We reuse the existing field because the old option `[packed =
 | 
			
		||||
			// true]` is mutually exclusive with the editions feature.
 | 
			
		||||
			if canBePacked(fd) {
 | 
			
		||||
				f.L1.HasPacked = true
 | 
			
		||||
				f.L1.IsPacked = f.L1.EditionFeatures.IsPacked
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// We pretend this option is always explicitly set because the only
 | 
			
		||||
			// use of HasEnforceUTF8 is to determine whether to use EnforceUTF8
 | 
			
		||||
			// or to return the appropriate default.
 | 
			
		||||
			// When using editions we either parse the option or resolve the
 | 
			
		||||
			// appropriate default here (instead of later when this option is
 | 
			
		||||
			// requested from the descriptor).
 | 
			
		||||
			// In proto2/proto3 syntax HasEnforceUTF8 might be false.
 | 
			
		||||
			f.L1.HasEnforceUTF8 = true
 | 
			
		||||
			f.L1.EnforceUTF8 = f.L1.EditionFeatures.IsUTF8Validated
 | 
			
		||||
 | 
			
		||||
			if f.L1.Kind == protoreflect.MessageKind && f.L1.EditionFeatures.IsDelimitedEncoded {
 | 
			
		||||
				f.L1.Kind = protoreflect.GroupKind
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return fs, nil
 | 
			
		||||
}
 | 
			
		||||
@@ -151,6 +204,9 @@ func (r descsByName) initOneofsFromDescriptorProto(ods []*descriptorpb.OneofDesc
 | 
			
		||||
		if opts := od.GetOptions(); opts != nil {
 | 
			
		||||
			opts = proto.Clone(opts).(*descriptorpb.OneofOptions)
 | 
			
		||||
			o.L1.Options = func() protoreflect.ProtoMessage { return opts }
 | 
			
		||||
			if parent.Syntax() == protoreflect.Editions {
 | 
			
		||||
				o.L1.EditionFeatures = mergeEditionFeatures(parent, opts.GetFeatures())
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return os, nil
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -276,8 +276,8 @@ func unmarshalDefault(s string, fd protoreflect.FieldDescriptor, allowUnresolvab
 | 
			
		||||
	} else if err != nil {
 | 
			
		||||
		return v, ev, err
 | 
			
		||||
	}
 | 
			
		||||
	if fd.Syntax() == protoreflect.Proto3 {
 | 
			
		||||
		return v, ev, errors.New("cannot be specified under proto3 semantics")
 | 
			
		||||
	if !fd.HasPresence() {
 | 
			
		||||
		return v, ev, errors.New("cannot be specified with implicit field presence")
 | 
			
		||||
	}
 | 
			
		||||
	if fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind || fd.Cardinality() == protoreflect.Repeated {
 | 
			
		||||
		return v, ev, errors.New("cannot be specified on composite types")
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -107,7 +107,7 @@ func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.Desc
 | 
			
		||||
		if isMessageSet && !flags.ProtoLegacy {
 | 
			
		||||
			return errors.New("message %q is a MessageSet, which is a legacy proto1 feature that is no longer supported", m.FullName())
 | 
			
		||||
		}
 | 
			
		||||
		if isMessageSet && (m.Syntax() != protoreflect.Proto2 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) {
 | 
			
		||||
		if isMessageSet && (m.Syntax() == protoreflect.Proto3 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) {
 | 
			
		||||
			return errors.New("message %q is an invalid proto1 MessageSet", m.FullName())
 | 
			
		||||
		}
 | 
			
		||||
		if m.Syntax() == protoreflect.Proto3 {
 | 
			
		||||
@@ -314,8 +314,8 @@ func checkValidGroup(fd protoreflect.FieldDescriptor) error {
 | 
			
		||||
	switch {
 | 
			
		||||
	case fd.Kind() != protoreflect.GroupKind:
 | 
			
		||||
		return nil
 | 
			
		||||
	case fd.Syntax() != protoreflect.Proto2:
 | 
			
		||||
		return errors.New("invalid under proto2 semantics")
 | 
			
		||||
	case fd.Syntax() == protoreflect.Proto3:
 | 
			
		||||
		return errors.New("invalid under proto3 semantics")
 | 
			
		||||
	case md == nil || md.IsPlaceholder():
 | 
			
		||||
		return errors.New("message must be resolvable")
 | 
			
		||||
	case fd.FullName().Parent() != md.FullName().Parent():
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										148
									
								
								vendor/google.golang.org/protobuf/reflect/protodesc/editions.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										148
									
								
								vendor/google.golang.org/protobuf/reflect/protodesc/editions.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,148 @@
 | 
			
		||||
// 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 protodesc
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"os"
 | 
			
		||||
	"sync"
 | 
			
		||||
 | 
			
		||||
	"google.golang.org/protobuf/internal/editiondefaults"
 | 
			
		||||
	"google.golang.org/protobuf/internal/filedesc"
 | 
			
		||||
	"google.golang.org/protobuf/proto"
 | 
			
		||||
	"google.golang.org/protobuf/reflect/protoreflect"
 | 
			
		||||
	"google.golang.org/protobuf/types/descriptorpb"
 | 
			
		||||
	gofeaturespb "google.golang.org/protobuf/types/gofeaturespb"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	SupportedEditionsMinimum = descriptorpb.Edition_EDITION_PROTO2
 | 
			
		||||
	SupportedEditionsMaximum = descriptorpb.Edition_EDITION_2023
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var defaults = &descriptorpb.FeatureSetDefaults{}
 | 
			
		||||
var defaultsCacheMu sync.Mutex
 | 
			
		||||
var defaultsCache = make(map[filedesc.Edition]*descriptorpb.FeatureSet)
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	err := proto.Unmarshal(editiondefaults.Defaults, defaults)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		fmt.Fprintf(os.Stderr, "unmarshal editions defaults: %v\n", err)
 | 
			
		||||
		os.Exit(1)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func fromEditionProto(epb descriptorpb.Edition) filedesc.Edition {
 | 
			
		||||
	return filedesc.Edition(epb)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func toEditionProto(ed filedesc.Edition) descriptorpb.Edition {
 | 
			
		||||
	switch ed {
 | 
			
		||||
	case filedesc.EditionUnknown:
 | 
			
		||||
		return descriptorpb.Edition_EDITION_UNKNOWN
 | 
			
		||||
	case filedesc.EditionProto2:
 | 
			
		||||
		return descriptorpb.Edition_EDITION_PROTO2
 | 
			
		||||
	case filedesc.EditionProto3:
 | 
			
		||||
		return descriptorpb.Edition_EDITION_PROTO3
 | 
			
		||||
	case filedesc.Edition2023:
 | 
			
		||||
		return descriptorpb.Edition_EDITION_2023
 | 
			
		||||
	default:
 | 
			
		||||
		panic(fmt.Sprintf("unknown value for edition: %v", ed))
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getFeatureSetFor(ed filedesc.Edition) *descriptorpb.FeatureSet {
 | 
			
		||||
	defaultsCacheMu.Lock()
 | 
			
		||||
	defer defaultsCacheMu.Unlock()
 | 
			
		||||
	if def, ok := defaultsCache[ed]; ok {
 | 
			
		||||
		return def
 | 
			
		||||
	}
 | 
			
		||||
	edpb := toEditionProto(ed)
 | 
			
		||||
	if defaults.GetMinimumEdition() > edpb || defaults.GetMaximumEdition() < edpb {
 | 
			
		||||
		// This should never happen protodesc.(FileOptions).New would fail when
 | 
			
		||||
		// initializing the file descriptor.
 | 
			
		||||
		// This most likely means the embedded defaults were not updated.
 | 
			
		||||
		fmt.Fprintf(os.Stderr, "internal error: unsupported edition %v (did you forget to update the embedded defaults (i.e. the bootstrap descriptor proto)?)\n", edpb)
 | 
			
		||||
		os.Exit(1)
 | 
			
		||||
	}
 | 
			
		||||
	fs := defaults.GetDefaults()[0].GetFeatures()
 | 
			
		||||
	// Using a linear search for now.
 | 
			
		||||
	// Editions are guaranteed to be sorted and thus we could use a binary search.
 | 
			
		||||
	// Given that there are only a handful of editions (with one more per year)
 | 
			
		||||
	// there is not much reason to use a binary search.
 | 
			
		||||
	for _, def := range defaults.GetDefaults() {
 | 
			
		||||
		if def.GetEdition() <= edpb {
 | 
			
		||||
			fs = def.GetFeatures()
 | 
			
		||||
		} else {
 | 
			
		||||
			break
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	defaultsCache[ed] = fs
 | 
			
		||||
	return fs
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// mergeEditionFeatures merges the parent and child feature sets. This function
 | 
			
		||||
// should be used when initializing Go descriptors from descriptor protos which
 | 
			
		||||
// is why the parent is a filedesc.EditionsFeatures (Go representation) while
 | 
			
		||||
// the child is a descriptorproto.FeatureSet (protoc representation).
 | 
			
		||||
// Any feature set by the child overwrites what is set by the parent.
 | 
			
		||||
func mergeEditionFeatures(parentDesc protoreflect.Descriptor, child *descriptorpb.FeatureSet) filedesc.EditionFeatures {
 | 
			
		||||
	var parentFS filedesc.EditionFeatures
 | 
			
		||||
	switch p := parentDesc.(type) {
 | 
			
		||||
	case *filedesc.File:
 | 
			
		||||
		parentFS = p.L1.EditionFeatures
 | 
			
		||||
	case *filedesc.Message:
 | 
			
		||||
		parentFS = p.L1.EditionFeatures
 | 
			
		||||
	default:
 | 
			
		||||
		panic(fmt.Sprintf("unknown parent type %T", parentDesc))
 | 
			
		||||
	}
 | 
			
		||||
	if child == nil {
 | 
			
		||||
		return parentFS
 | 
			
		||||
	}
 | 
			
		||||
	if fp := child.FieldPresence; fp != nil {
 | 
			
		||||
		parentFS.IsFieldPresence = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED ||
 | 
			
		||||
			*fp == descriptorpb.FeatureSet_EXPLICIT
 | 
			
		||||
		parentFS.IsLegacyRequired = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED
 | 
			
		||||
	}
 | 
			
		||||
	if et := child.EnumType; et != nil {
 | 
			
		||||
		parentFS.IsOpenEnum = *et == descriptorpb.FeatureSet_OPEN
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if rfe := child.RepeatedFieldEncoding; rfe != nil {
 | 
			
		||||
		parentFS.IsPacked = *rfe == descriptorpb.FeatureSet_PACKED
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if utf8val := child.Utf8Validation; utf8val != nil {
 | 
			
		||||
		parentFS.IsUTF8Validated = *utf8val == descriptorpb.FeatureSet_VERIFY
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if me := child.MessageEncoding; me != nil {
 | 
			
		||||
		parentFS.IsDelimitedEncoded = *me == descriptorpb.FeatureSet_DELIMITED
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if jf := child.JsonFormat; jf != nil {
 | 
			
		||||
		parentFS.IsJSONCompliant = *jf == descriptorpb.FeatureSet_ALLOW
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if goFeatures, ok := proto.GetExtension(child, gofeaturespb.E_Go).(*gofeaturespb.GoFeatures); ok && goFeatures != nil {
 | 
			
		||||
		if luje := goFeatures.LegacyUnmarshalJsonEnum; luje != nil {
 | 
			
		||||
			parentFS.GenerateLegacyUnmarshalJSON = *luje
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return parentFS
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// initFileDescFromFeatureSet initializes editions related fields in fd based
 | 
			
		||||
// on fs. If fs is nil it is assumed to be an empty featureset and all fields
 | 
			
		||||
// will be initialized with the appropriate default. fd.L1.Edition must be set
 | 
			
		||||
// before calling this function.
 | 
			
		||||
func initFileDescFromFeatureSet(fd *filedesc.File, fs *descriptorpb.FeatureSet) {
 | 
			
		||||
	dfs := getFeatureSetFor(fd.L1.Edition)
 | 
			
		||||
	// initialize the featureset with the defaults
 | 
			
		||||
	fd.L1.EditionFeatures = mergeEditionFeatures(fd, dfs)
 | 
			
		||||
	// overwrite any options explicitly specified
 | 
			
		||||
	fd.L1.EditionFeatures = mergeEditionFeatures(fd, fs)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										18
									
								
								vendor/google.golang.org/protobuf/reflect/protodesc/proto.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								vendor/google.golang.org/protobuf/reflect/protodesc/proto.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -16,7 +16,7 @@ import (
 | 
			
		||||
	"google.golang.org/protobuf/types/descriptorpb"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// ToFileDescriptorProto copies a protoreflect.FileDescriptor into a
 | 
			
		||||
// ToFileDescriptorProto copies a [protoreflect.FileDescriptor] into a
 | 
			
		||||
// google.protobuf.FileDescriptorProto message.
 | 
			
		||||
func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileDescriptorProto {
 | 
			
		||||
	p := &descriptorpb.FileDescriptorProto{
 | 
			
		||||
@@ -70,13 +70,13 @@ func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileD
 | 
			
		||||
	for i, exts := 0, file.Extensions(); i < exts.Len(); i++ {
 | 
			
		||||
		p.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i)))
 | 
			
		||||
	}
 | 
			
		||||
	if syntax := file.Syntax(); syntax != protoreflect.Proto2 {
 | 
			
		||||
	if syntax := file.Syntax(); syntax != protoreflect.Proto2 && syntax.IsValid() {
 | 
			
		||||
		p.Syntax = proto.String(file.Syntax().String())
 | 
			
		||||
	}
 | 
			
		||||
	return p
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ToDescriptorProto copies a protoreflect.MessageDescriptor into a
 | 
			
		||||
// ToDescriptorProto copies a [protoreflect.MessageDescriptor] into a
 | 
			
		||||
// google.protobuf.DescriptorProto message.
 | 
			
		||||
func ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.DescriptorProto {
 | 
			
		||||
	p := &descriptorpb.DescriptorProto{
 | 
			
		||||
@@ -119,7 +119,7 @@ func ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.Des
 | 
			
		||||
	return p
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ToFieldDescriptorProto copies a protoreflect.FieldDescriptor into a
 | 
			
		||||
// ToFieldDescriptorProto copies a [protoreflect.FieldDescriptor] into a
 | 
			
		||||
// google.protobuf.FieldDescriptorProto message.
 | 
			
		||||
func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.FieldDescriptorProto {
 | 
			
		||||
	p := &descriptorpb.FieldDescriptorProto{
 | 
			
		||||
@@ -168,7 +168,7 @@ func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.Fi
 | 
			
		||||
	return p
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ToOneofDescriptorProto copies a protoreflect.OneofDescriptor into a
 | 
			
		||||
// ToOneofDescriptorProto copies a [protoreflect.OneofDescriptor] into a
 | 
			
		||||
// google.protobuf.OneofDescriptorProto message.
 | 
			
		||||
func ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.OneofDescriptorProto {
 | 
			
		||||
	return &descriptorpb.OneofDescriptorProto{
 | 
			
		||||
@@ -177,7 +177,7 @@ func ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.On
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ToEnumDescriptorProto copies a protoreflect.EnumDescriptor into a
 | 
			
		||||
// ToEnumDescriptorProto copies a [protoreflect.EnumDescriptor] into a
 | 
			
		||||
// google.protobuf.EnumDescriptorProto message.
 | 
			
		||||
func ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumDescriptorProto {
 | 
			
		||||
	p := &descriptorpb.EnumDescriptorProto{
 | 
			
		||||
@@ -200,7 +200,7 @@ func ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumD
 | 
			
		||||
	return p
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ToEnumValueDescriptorProto copies a protoreflect.EnumValueDescriptor into a
 | 
			
		||||
// ToEnumValueDescriptorProto copies a [protoreflect.EnumValueDescriptor] into a
 | 
			
		||||
// google.protobuf.EnumValueDescriptorProto message.
 | 
			
		||||
func ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descriptorpb.EnumValueDescriptorProto {
 | 
			
		||||
	return &descriptorpb.EnumValueDescriptorProto{
 | 
			
		||||
@@ -210,7 +210,7 @@ func ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descrip
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ToServiceDescriptorProto copies a protoreflect.ServiceDescriptor into a
 | 
			
		||||
// ToServiceDescriptorProto copies a [protoreflect.ServiceDescriptor] into a
 | 
			
		||||
// google.protobuf.ServiceDescriptorProto message.
 | 
			
		||||
func ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descriptorpb.ServiceDescriptorProto {
 | 
			
		||||
	p := &descriptorpb.ServiceDescriptorProto{
 | 
			
		||||
@@ -223,7 +223,7 @@ func ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descripto
 | 
			
		||||
	return p
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ToMethodDescriptorProto copies a protoreflect.MethodDescriptor into a
 | 
			
		||||
// ToMethodDescriptorProto copies a [protoreflect.MethodDescriptor] into a
 | 
			
		||||
// google.protobuf.MethodDescriptorProto message.
 | 
			
		||||
func ToMethodDescriptorProto(method protoreflect.MethodDescriptor) *descriptorpb.MethodDescriptorProto {
 | 
			
		||||
	p := &descriptorpb.MethodDescriptorProto{
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/google.golang.org/protobuf/reflect/protopath/path.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/google.golang.org/protobuf/reflect/protopath/path.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -17,14 +17,14 @@ import (
 | 
			
		||||
// where you would like to "address" some value in a message with just the path
 | 
			
		||||
// and don't have the value information available.
 | 
			
		||||
//
 | 
			
		||||
// This is different from how "github.com/google/go-cmp/cmp".Path operates,
 | 
			
		||||
// This is different from how github.com/google/go-cmp/cmp.Path operates,
 | 
			
		||||
// which combines both path and value information together.
 | 
			
		||||
// Since the cmp package itself is the only one ever constructing a cmp.Path,
 | 
			
		||||
// it will always have the value available.
 | 
			
		||||
 | 
			
		||||
// Path is a sequence of protobuf reflection steps applied to some root
 | 
			
		||||
// protobuf message value to arrive at the current value.
 | 
			
		||||
// The first step must be a Root step.
 | 
			
		||||
// The first step must be a [Root] step.
 | 
			
		||||
type Path []Step
 | 
			
		||||
 | 
			
		||||
// TODO: Provide a Parse function that parses something similar to or
 | 
			
		||||
@@ -55,8 +55,8 @@ func (p Path) String() string {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Values is a Path paired with a sequence of values at each step.
 | 
			
		||||
// The lengths of Path and Values must be identical.
 | 
			
		||||
// The first step must be a Root step and
 | 
			
		||||
// The lengths of [Values.Path] and [Values.Values] must be identical.
 | 
			
		||||
// The first step must be a [Root] step and
 | 
			
		||||
// the first value must be a concrete message value.
 | 
			
		||||
type Values struct {
 | 
			
		||||
	Path   Path
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										44
									
								
								vendor/google.golang.org/protobuf/reflect/protorange/range.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										44
									
								
								vendor/google.golang.org/protobuf/reflect/protorange/range.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -30,7 +30,7 @@ var (
 | 
			
		||||
 | 
			
		||||
// Range performs a depth-first traversal over reachable values in a message.
 | 
			
		||||
//
 | 
			
		||||
// See Options.Range for details.
 | 
			
		||||
// See [Options.Range] for details.
 | 
			
		||||
func Range(m protoreflect.Message, f func(protopath.Values) error) error {
 | 
			
		||||
	return Options{}.Range(m, f, nil)
 | 
			
		||||
}
 | 
			
		||||
@@ -61,33 +61,33 @@ type Options struct {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Range performs a depth-first traversal over reachable values in a message.
 | 
			
		||||
// The first push and the last pop are to push/pop a protopath.Root step.
 | 
			
		||||
// If push or pop return any non-nil error (other than Break or Terminate),
 | 
			
		||||
// The first push and the last pop are to push/pop a [protopath.Root] step.
 | 
			
		||||
// If push or pop return any non-nil error (other than [Break] or [Terminate]),
 | 
			
		||||
// it terminates the traversal and is returned by Range.
 | 
			
		||||
//
 | 
			
		||||
// The rules for traversing a message is as follows:
 | 
			
		||||
//
 | 
			
		||||
// • For messages, iterate over every populated known and extension field.
 | 
			
		||||
// Each field is preceded by a push of a protopath.FieldAccess step,
 | 
			
		||||
// followed by recursive application of the rules on the field value,
 | 
			
		||||
// and succeeded by a pop of that step.
 | 
			
		||||
// If the message has unknown fields, then push an protopath.UnknownAccess step
 | 
			
		||||
// followed immediately by pop of that step.
 | 
			
		||||
//   - For messages, iterate over every populated known and extension field.
 | 
			
		||||
//     Each field is preceded by a push of a [protopath.FieldAccess] step,
 | 
			
		||||
//     followed by recursive application of the rules on the field value,
 | 
			
		||||
//     and succeeded by a pop of that step.
 | 
			
		||||
//     If the message has unknown fields, then push an [protopath.UnknownAccess] step
 | 
			
		||||
//     followed immediately by pop of that step.
 | 
			
		||||
//
 | 
			
		||||
// • As an exception to the above rule, if the current message is a
 | 
			
		||||
// google.protobuf.Any message, expand the underlying message (if resolvable).
 | 
			
		||||
// The expanded message is preceded by a push of a protopath.AnyExpand step,
 | 
			
		||||
// followed by recursive application of the rules on the underlying message,
 | 
			
		||||
// and succeeded by a pop of that step. Mutations to the expanded message
 | 
			
		||||
// are written back to the Any message when popping back out.
 | 
			
		||||
//   - As an exception to the above rule, if the current message is a
 | 
			
		||||
//     google.protobuf.Any message, expand the underlying message (if resolvable).
 | 
			
		||||
//     The expanded message is preceded by a push of a [protopath.AnyExpand] step,
 | 
			
		||||
//     followed by recursive application of the rules on the underlying message,
 | 
			
		||||
//     and succeeded by a pop of that step. Mutations to the expanded message
 | 
			
		||||
//     are written back to the Any message when popping back out.
 | 
			
		||||
//
 | 
			
		||||
// • For lists, iterate over every element. Each element is preceded by a push
 | 
			
		||||
// of a protopath.ListIndex step, followed by recursive application of the rules
 | 
			
		||||
// on the list element, and succeeded by a pop of that step.
 | 
			
		||||
//   - For lists, iterate over every element. Each element is preceded by a push
 | 
			
		||||
//     of a [protopath.ListIndex] step, followed by recursive application of the rules
 | 
			
		||||
//     on the list element, and succeeded by a pop of that step.
 | 
			
		||||
//
 | 
			
		||||
// • For maps, iterate over every entry. Each entry is preceded by a push
 | 
			
		||||
// of a protopath.MapIndex step, followed by recursive application of the rules
 | 
			
		||||
// on the map entry value, and succeeded by a pop of that step.
 | 
			
		||||
//   - For maps, iterate over every entry. Each entry is preceded by a push
 | 
			
		||||
//     of a [protopath.MapIndex] step, followed by recursive application of the rules
 | 
			
		||||
//     on the map entry value, and succeeded by a pop of that step.
 | 
			
		||||
//
 | 
			
		||||
// Mutations should only be made to the last value, otherwise the effects on
 | 
			
		||||
// traversal will be undefined. If the mutation is made to the last value
 | 
			
		||||
@@ -96,7 +96,7 @@ type Options struct {
 | 
			
		||||
// populates a few fields in that message, then the newly modified fields
 | 
			
		||||
// will be traversed.
 | 
			
		||||
//
 | 
			
		||||
// The protopath.Values provided to push functions is only valid until the
 | 
			
		||||
// The [protopath.Values] provided to push functions is only valid until the
 | 
			
		||||
// corresponding pop call and the values provided to a pop call is only valid
 | 
			
		||||
// for the duration of the pop call itself.
 | 
			
		||||
func (o Options) Range(m protoreflect.Message, push, pop func(protopath.Values) error) error {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										85
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										85
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -10,46 +10,46 @@
 | 
			
		||||
//
 | 
			
		||||
// # Protocol Buffer Descriptors
 | 
			
		||||
//
 | 
			
		||||
// Protobuf descriptors (e.g., EnumDescriptor or MessageDescriptor)
 | 
			
		||||
// Protobuf descriptors (e.g., [EnumDescriptor] or [MessageDescriptor])
 | 
			
		||||
// are immutable objects that represent protobuf type information.
 | 
			
		||||
// They are wrappers around the messages declared in descriptor.proto.
 | 
			
		||||
// Protobuf descriptors alone lack any information regarding Go types.
 | 
			
		||||
//
 | 
			
		||||
// Enums and messages generated by this module implement Enum and ProtoMessage,
 | 
			
		||||
// Enums and messages generated by this module implement [Enum] and [ProtoMessage],
 | 
			
		||||
// where the Descriptor and ProtoReflect.Descriptor accessors respectively
 | 
			
		||||
// return the protobuf descriptor for the values.
 | 
			
		||||
//
 | 
			
		||||
// The protobuf descriptor interfaces are not meant to be implemented by
 | 
			
		||||
// user code since they might need to be extended in the future to support
 | 
			
		||||
// additions to the protobuf language.
 | 
			
		||||
// The "google.golang.org/protobuf/reflect/protodesc" package converts between
 | 
			
		||||
// The [google.golang.org/protobuf/reflect/protodesc] package converts between
 | 
			
		||||
// google.protobuf.DescriptorProto messages and protobuf descriptors.
 | 
			
		||||
//
 | 
			
		||||
// # Go Type Descriptors
 | 
			
		||||
//
 | 
			
		||||
// A type descriptor (e.g., EnumType or MessageType) is a constructor for
 | 
			
		||||
// A type descriptor (e.g., [EnumType] or [MessageType]) is a constructor for
 | 
			
		||||
// a concrete Go type that represents the associated protobuf descriptor.
 | 
			
		||||
// There is commonly a one-to-one relationship between protobuf descriptors and
 | 
			
		||||
// Go type descriptors, but it can potentially be a one-to-many relationship.
 | 
			
		||||
//
 | 
			
		||||
// Enums and messages generated by this module implement Enum and ProtoMessage,
 | 
			
		||||
// Enums and messages generated by this module implement [Enum] and [ProtoMessage],
 | 
			
		||||
// where the Type and ProtoReflect.Type accessors respectively
 | 
			
		||||
// return the protobuf descriptor for the values.
 | 
			
		||||
//
 | 
			
		||||
// The "google.golang.org/protobuf/types/dynamicpb" package can be used to
 | 
			
		||||
// The [google.golang.org/protobuf/types/dynamicpb] package can be used to
 | 
			
		||||
// create Go type descriptors from protobuf descriptors.
 | 
			
		||||
//
 | 
			
		||||
// # Value Interfaces
 | 
			
		||||
//
 | 
			
		||||
// The Enum and Message interfaces provide a reflective view over an
 | 
			
		||||
// The [Enum] and [Message] interfaces provide a reflective view over an
 | 
			
		||||
// enum or message instance. For enums, it provides the ability to retrieve
 | 
			
		||||
// the enum value number for any concrete enum type. For messages, it provides
 | 
			
		||||
// the ability to access or manipulate fields of the message.
 | 
			
		||||
//
 | 
			
		||||
// To convert a proto.Message to a protoreflect.Message, use the
 | 
			
		||||
// To convert a [google.golang.org/protobuf/proto.Message] to a [protoreflect.Message], use the
 | 
			
		||||
// former's ProtoReflect method. Since the ProtoReflect method is new to the
 | 
			
		||||
// v2 message interface, it may not be present on older message implementations.
 | 
			
		||||
// The "github.com/golang/protobuf/proto".MessageReflect function can be used
 | 
			
		||||
// The [github.com/golang/protobuf/proto.MessageReflect] function can be used
 | 
			
		||||
// to obtain a reflective view on older messages.
 | 
			
		||||
//
 | 
			
		||||
// # Relationships
 | 
			
		||||
@@ -71,12 +71,12 @@
 | 
			
		||||
//	      │                                 │
 | 
			
		||||
//	      └────────────────── Type() ───────┘
 | 
			
		||||
//
 | 
			
		||||
// • An EnumType describes a concrete Go enum type.
 | 
			
		||||
// • An [EnumType] describes a concrete Go enum type.
 | 
			
		||||
// It has an EnumDescriptor and can construct an Enum instance.
 | 
			
		||||
//
 | 
			
		||||
// • An EnumDescriptor describes an abstract protobuf enum type.
 | 
			
		||||
// • An [EnumDescriptor] describes an abstract protobuf enum type.
 | 
			
		||||
//
 | 
			
		||||
// • An Enum is a concrete enum instance. Generated enums implement Enum.
 | 
			
		||||
// • An [Enum] is a concrete enum instance. Generated enums implement Enum.
 | 
			
		||||
//
 | 
			
		||||
//	  ┌──────────────── New() ─────────────────┐
 | 
			
		||||
//	  │                                        │
 | 
			
		||||
@@ -90,24 +90,26 @@
 | 
			
		||||
//	       │                                    │
 | 
			
		||||
//	       └─────────────────── Type() ─────────┘
 | 
			
		||||
//
 | 
			
		||||
// • A MessageType describes a concrete Go message type.
 | 
			
		||||
// It has a MessageDescriptor and can construct a Message instance.
 | 
			
		||||
// Just as how Go's reflect.Type is a reflective description of a Go type,
 | 
			
		||||
// a MessageType is a reflective description of a Go type for a protobuf message.
 | 
			
		||||
// • A [MessageType] describes a concrete Go message type.
 | 
			
		||||
// It has a [MessageDescriptor] and can construct a [Message] instance.
 | 
			
		||||
// Just as how Go's [reflect.Type] is a reflective description of a Go type,
 | 
			
		||||
// a [MessageType] is a reflective description of a Go type for a protobuf message.
 | 
			
		||||
//
 | 
			
		||||
// • A MessageDescriptor describes an abstract protobuf message type.
 | 
			
		||||
// It has no understanding of Go types. In order to construct a MessageType
 | 
			
		||||
// from just a MessageDescriptor, you can consider looking up the message type
 | 
			
		||||
// in the global registry using protoregistry.GlobalTypes.FindMessageByName
 | 
			
		||||
// or constructing a dynamic MessageType using dynamicpb.NewMessageType.
 | 
			
		||||
// • A [MessageDescriptor] describes an abstract protobuf message type.
 | 
			
		||||
// It has no understanding of Go types. In order to construct a [MessageType]
 | 
			
		||||
// from just a [MessageDescriptor], you can consider looking up the message type
 | 
			
		||||
// in the global registry using the FindMessageByName method on
 | 
			
		||||
// [google.golang.org/protobuf/reflect/protoregistry.GlobalTypes]
 | 
			
		||||
// or constructing a dynamic [MessageType] using
 | 
			
		||||
// [google.golang.org/protobuf/types/dynamicpb.NewMessageType].
 | 
			
		||||
//
 | 
			
		||||
// • A Message is a reflective view over a concrete message instance.
 | 
			
		||||
// Generated messages implement ProtoMessage, which can convert to a Message.
 | 
			
		||||
// Just as how Go's reflect.Value is a reflective view over a Go value,
 | 
			
		||||
// a Message is a reflective view over a concrete protobuf message instance.
 | 
			
		||||
// Using Go reflection as an analogy, the ProtoReflect method is similar to
 | 
			
		||||
// calling reflect.ValueOf, and the Message.Interface method is similar to
 | 
			
		||||
// calling reflect.Value.Interface.
 | 
			
		||||
// • A [Message] is a reflective view over a concrete message instance.
 | 
			
		||||
// Generated messages implement [ProtoMessage], which can convert to a [Message].
 | 
			
		||||
// Just as how Go's [reflect.Value] is a reflective view over a Go value,
 | 
			
		||||
// a [Message] is a reflective view over a concrete protobuf message instance.
 | 
			
		||||
// Using Go reflection as an analogy, the [ProtoMessage.ProtoReflect] method is similar to
 | 
			
		||||
// calling [reflect.ValueOf], and the [Message.Interface] method is similar to
 | 
			
		||||
// calling [reflect.Value.Interface].
 | 
			
		||||
//
 | 
			
		||||
//	      ┌── TypeDescriptor() ──┐    ┌───── Descriptor() ─────┐
 | 
			
		||||
//	      │                      V    │                        V
 | 
			
		||||
@@ -119,15 +121,15 @@
 | 
			
		||||
//	                                 │                          │
 | 
			
		||||
//	                                 └────── implements ────────┘
 | 
			
		||||
//
 | 
			
		||||
// • An ExtensionType describes a concrete Go implementation of an extension.
 | 
			
		||||
// It has an ExtensionTypeDescriptor and can convert to/from
 | 
			
		||||
// abstract Values and Go values.
 | 
			
		||||
// • An [ExtensionType] describes a concrete Go implementation of an extension.
 | 
			
		||||
// It has an [ExtensionTypeDescriptor] and can convert to/from
 | 
			
		||||
// an abstract [Value] and a Go value.
 | 
			
		||||
//
 | 
			
		||||
// • An ExtensionTypeDescriptor is an ExtensionDescriptor
 | 
			
		||||
// which also has an ExtensionType.
 | 
			
		||||
// • An [ExtensionTypeDescriptor] is an [ExtensionDescriptor]
 | 
			
		||||
// which also has an [ExtensionType].
 | 
			
		||||
//
 | 
			
		||||
// • An ExtensionDescriptor describes an abstract protobuf extension field and
 | 
			
		||||
// may not always be an ExtensionTypeDescriptor.
 | 
			
		||||
// • An [ExtensionDescriptor] describes an abstract protobuf extension field and
 | 
			
		||||
// may not always be an [ExtensionTypeDescriptor].
 | 
			
		||||
package protoreflect
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
@@ -142,7 +144,7 @@ type doNotImplement pragma.DoNotImplement
 | 
			
		||||
 | 
			
		||||
// ProtoMessage is the top-level interface that all proto messages implement.
 | 
			
		||||
// This is declared in the protoreflect package to avoid a cyclic dependency;
 | 
			
		||||
// use the proto.Message type instead, which aliases this type.
 | 
			
		||||
// use the [google.golang.org/protobuf/proto.Message] type instead, which aliases this type.
 | 
			
		||||
type ProtoMessage interface{ ProtoReflect() Message }
 | 
			
		||||
 | 
			
		||||
// Syntax is the language version of the proto file.
 | 
			
		||||
@@ -151,8 +153,9 @@ type Syntax syntax
 | 
			
		||||
type syntax int8 // keep exact type opaque as the int type may change
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	Proto2 Syntax = 2
 | 
			
		||||
	Proto3 Syntax = 3
 | 
			
		||||
	Proto2   Syntax = 2
 | 
			
		||||
	Proto3   Syntax = 3
 | 
			
		||||
	Editions Syntax = 4
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// IsValid reports whether the syntax is valid.
 | 
			
		||||
@@ -172,6 +175,8 @@ func (s Syntax) String() string {
 | 
			
		||||
		return "proto2"
 | 
			
		||||
	case Proto3:
 | 
			
		||||
		return "proto3"
 | 
			
		||||
	case Editions:
 | 
			
		||||
		return "editions"
 | 
			
		||||
	default:
 | 
			
		||||
		return fmt.Sprintf("<unknown:%d>", s)
 | 
			
		||||
	}
 | 
			
		||||
@@ -436,7 +441,7 @@ type Names interface {
 | 
			
		||||
// FullName is a qualified name that uniquely identifies a proto declaration.
 | 
			
		||||
// A qualified name is the concatenation of the proto package along with the
 | 
			
		||||
// fully-declared name (i.e., name of parent preceding the name of the child),
 | 
			
		||||
// with a '.' delimiter placed between each Name.
 | 
			
		||||
// with a '.' delimiter placed between each [Name].
 | 
			
		||||
//
 | 
			
		||||
// This should not have any leading or trailing dots.
 | 
			
		||||
type FullName string // e.g., "google.protobuf.Field.Kind"
 | 
			
		||||
@@ -480,7 +485,7 @@ func isLetterDigit(c byte) bool {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Name returns the short name, which is the last identifier segment.
 | 
			
		||||
// A single segment FullName is the Name itself.
 | 
			
		||||
// A single segment FullName is the [Name] itself.
 | 
			
		||||
func (n FullName) Name() Name {
 | 
			
		||||
	if i := strings.LastIndexByte(string(n), '.'); i >= 0 {
 | 
			
		||||
		return Name(n[i+1:])
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										64
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										64
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -35,7 +35,7 @@ func (p *SourcePath) appendFileDescriptorProto(b []byte) []byte {
 | 
			
		||||
		b = p.appendSingularField(b, "source_code_info", (*SourcePath).appendSourceCodeInfo)
 | 
			
		||||
	case 12:
 | 
			
		||||
		b = p.appendSingularField(b, "syntax", nil)
 | 
			
		||||
	case 13:
 | 
			
		||||
	case 14:
 | 
			
		||||
		b = p.appendSingularField(b, "edition", nil)
 | 
			
		||||
	}
 | 
			
		||||
	return b
 | 
			
		||||
@@ -160,8 +160,6 @@ func (p *SourcePath) appendFileOptions(b []byte) []byte {
 | 
			
		||||
		b = p.appendSingularField(b, "java_generic_services", nil)
 | 
			
		||||
	case 18:
 | 
			
		||||
		b = p.appendSingularField(b, "py_generic_services", nil)
 | 
			
		||||
	case 42:
 | 
			
		||||
		b = p.appendSingularField(b, "php_generic_services", nil)
 | 
			
		||||
	case 23:
 | 
			
		||||
		b = p.appendSingularField(b, "deprecated", nil)
 | 
			
		||||
	case 31:
 | 
			
		||||
@@ -180,6 +178,8 @@ func (p *SourcePath) appendFileOptions(b []byte) []byte {
 | 
			
		||||
		b = p.appendSingularField(b, "php_metadata_namespace", nil)
 | 
			
		||||
	case 45:
 | 
			
		||||
		b = p.appendSingularField(b, "ruby_package", nil)
 | 
			
		||||
	case 50:
 | 
			
		||||
		b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet)
 | 
			
		||||
	case 999:
 | 
			
		||||
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
 | 
			
		||||
	}
 | 
			
		||||
@@ -240,6 +240,8 @@ func (p *SourcePath) appendMessageOptions(b []byte) []byte {
 | 
			
		||||
		b = p.appendSingularField(b, "map_entry", nil)
 | 
			
		||||
	case 11:
 | 
			
		||||
		b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil)
 | 
			
		||||
	case 12:
 | 
			
		||||
		b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet)
 | 
			
		||||
	case 999:
 | 
			
		||||
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
 | 
			
		||||
	}
 | 
			
		||||
@@ -285,6 +287,8 @@ func (p *SourcePath) appendEnumOptions(b []byte) []byte {
 | 
			
		||||
		b = p.appendSingularField(b, "deprecated", nil)
 | 
			
		||||
	case 6:
 | 
			
		||||
		b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil)
 | 
			
		||||
	case 7:
 | 
			
		||||
		b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet)
 | 
			
		||||
	case 999:
 | 
			
		||||
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
 | 
			
		||||
	}
 | 
			
		||||
@@ -330,6 +334,8 @@ func (p *SourcePath) appendServiceOptions(b []byte) []byte {
 | 
			
		||||
		return b
 | 
			
		||||
	}
 | 
			
		||||
	switch (*p)[0] {
 | 
			
		||||
	case 34:
 | 
			
		||||
		b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet)
 | 
			
		||||
	case 33:
 | 
			
		||||
		b = p.appendSingularField(b, "deprecated", nil)
 | 
			
		||||
	case 999:
 | 
			
		||||
@@ -361,16 +367,39 @@ func (p *SourcePath) appendFieldOptions(b []byte) []byte {
 | 
			
		||||
		b = p.appendSingularField(b, "debug_redact", nil)
 | 
			
		||||
	case 17:
 | 
			
		||||
		b = p.appendSingularField(b, "retention", nil)
 | 
			
		||||
	case 18:
 | 
			
		||||
		b = p.appendSingularField(b, "target", nil)
 | 
			
		||||
	case 19:
 | 
			
		||||
		b = p.appendRepeatedField(b, "targets", nil)
 | 
			
		||||
	case 20:
 | 
			
		||||
		b = p.appendRepeatedField(b, "edition_defaults", (*SourcePath).appendFieldOptions_EditionDefault)
 | 
			
		||||
	case 21:
 | 
			
		||||
		b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet)
 | 
			
		||||
	case 999:
 | 
			
		||||
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
 | 
			
		||||
	}
 | 
			
		||||
	return b
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *SourcePath) appendFeatureSet(b []byte) []byte {
 | 
			
		||||
	if len(*p) == 0 {
 | 
			
		||||
		return b
 | 
			
		||||
	}
 | 
			
		||||
	switch (*p)[0] {
 | 
			
		||||
	case 1:
 | 
			
		||||
		b = p.appendSingularField(b, "field_presence", nil)
 | 
			
		||||
	case 2:
 | 
			
		||||
		b = p.appendSingularField(b, "enum_type", nil)
 | 
			
		||||
	case 3:
 | 
			
		||||
		b = p.appendSingularField(b, "repeated_field_encoding", nil)
 | 
			
		||||
	case 4:
 | 
			
		||||
		b = p.appendSingularField(b, "utf8_validation", nil)
 | 
			
		||||
	case 5:
 | 
			
		||||
		b = p.appendSingularField(b, "message_encoding", nil)
 | 
			
		||||
	case 6:
 | 
			
		||||
		b = p.appendSingularField(b, "json_format", nil)
 | 
			
		||||
	}
 | 
			
		||||
	return b
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *SourcePath) appendUninterpretedOption(b []byte) []byte {
 | 
			
		||||
	if len(*p) == 0 {
 | 
			
		||||
		return b
 | 
			
		||||
@@ -422,6 +451,8 @@ func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte {
 | 
			
		||||
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
 | 
			
		||||
	case 2:
 | 
			
		||||
		b = p.appendRepeatedField(b, "declaration", (*SourcePath).appendExtensionRangeOptions_Declaration)
 | 
			
		||||
	case 50:
 | 
			
		||||
		b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet)
 | 
			
		||||
	case 3:
 | 
			
		||||
		b = p.appendSingularField(b, "verification", nil)
 | 
			
		||||
	}
 | 
			
		||||
@@ -433,6 +464,8 @@ func (p *SourcePath) appendOneofOptions(b []byte) []byte {
 | 
			
		||||
		return b
 | 
			
		||||
	}
 | 
			
		||||
	switch (*p)[0] {
 | 
			
		||||
	case 1:
 | 
			
		||||
		b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet)
 | 
			
		||||
	case 999:
 | 
			
		||||
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
 | 
			
		||||
	}
 | 
			
		||||
@@ -446,6 +479,10 @@ func (p *SourcePath) appendEnumValueOptions(b []byte) []byte {
 | 
			
		||||
	switch (*p)[0] {
 | 
			
		||||
	case 1:
 | 
			
		||||
		b = p.appendSingularField(b, "deprecated", nil)
 | 
			
		||||
	case 2:
 | 
			
		||||
		b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet)
 | 
			
		||||
	case 3:
 | 
			
		||||
		b = p.appendSingularField(b, "debug_redact", nil)
 | 
			
		||||
	case 999:
 | 
			
		||||
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
 | 
			
		||||
	}
 | 
			
		||||
@@ -461,12 +498,27 @@ func (p *SourcePath) appendMethodOptions(b []byte) []byte {
 | 
			
		||||
		b = p.appendSingularField(b, "deprecated", nil)
 | 
			
		||||
	case 34:
 | 
			
		||||
		b = p.appendSingularField(b, "idempotency_level", nil)
 | 
			
		||||
	case 35:
 | 
			
		||||
		b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet)
 | 
			
		||||
	case 999:
 | 
			
		||||
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
 | 
			
		||||
	}
 | 
			
		||||
	return b
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *SourcePath) appendFieldOptions_EditionDefault(b []byte) []byte {
 | 
			
		||||
	if len(*p) == 0 {
 | 
			
		||||
		return b
 | 
			
		||||
	}
 | 
			
		||||
	switch (*p)[0] {
 | 
			
		||||
	case 3:
 | 
			
		||||
		b = p.appendSingularField(b, "edition", nil)
 | 
			
		||||
	case 2:
 | 
			
		||||
		b = p.appendSingularField(b, "value", nil)
 | 
			
		||||
	}
 | 
			
		||||
	return b
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte {
 | 
			
		||||
	if len(*p) == 0 {
 | 
			
		||||
		return b
 | 
			
		||||
@@ -491,8 +543,6 @@ func (p *SourcePath) appendExtensionRangeOptions_Declaration(b []byte) []byte {
 | 
			
		||||
		b = p.appendSingularField(b, "full_name", nil)
 | 
			
		||||
	case 3:
 | 
			
		||||
		b = p.appendSingularField(b, "type", nil)
 | 
			
		||||
	case 4:
 | 
			
		||||
		b = p.appendSingularField(b, "is_repeated", nil)
 | 
			
		||||
	case 5:
 | 
			
		||||
		b = p.appendSingularField(b, "reserved", nil)
 | 
			
		||||
	case 6:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										44
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/type.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										44
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/type.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -12,7 +12,7 @@ package protoreflect
 | 
			
		||||
// exactly identical. However, it is possible for the same semantically
 | 
			
		||||
// identical proto type to be represented by multiple type descriptors.
 | 
			
		||||
//
 | 
			
		||||
// For example, suppose we have t1 and t2 which are both MessageDescriptors.
 | 
			
		||||
// For example, suppose we have t1 and t2 which are both an [MessageDescriptor].
 | 
			
		||||
// If t1 == t2, then the types are definitely equal and all accessors return
 | 
			
		||||
// the same information. However, if t1 != t2, then it is still possible that
 | 
			
		||||
// they still represent the same proto type (e.g., t1.FullName == t2.FullName).
 | 
			
		||||
@@ -115,7 +115,7 @@ type Descriptor interface {
 | 
			
		||||
// corresponds with the google.protobuf.FileDescriptorProto message.
 | 
			
		||||
//
 | 
			
		||||
// Top-level declarations:
 | 
			
		||||
// EnumDescriptor, MessageDescriptor, FieldDescriptor, and/or ServiceDescriptor.
 | 
			
		||||
// [EnumDescriptor], [MessageDescriptor], [FieldDescriptor], and/or [ServiceDescriptor].
 | 
			
		||||
type FileDescriptor interface {
 | 
			
		||||
	Descriptor // Descriptor.FullName is identical to Package
 | 
			
		||||
 | 
			
		||||
@@ -180,8 +180,8 @@ type FileImport struct {
 | 
			
		||||
// corresponds with the google.protobuf.DescriptorProto message.
 | 
			
		||||
//
 | 
			
		||||
// Nested declarations:
 | 
			
		||||
// FieldDescriptor, OneofDescriptor, FieldDescriptor, EnumDescriptor,
 | 
			
		||||
// and/or MessageDescriptor.
 | 
			
		||||
// [FieldDescriptor], [OneofDescriptor], [FieldDescriptor], [EnumDescriptor],
 | 
			
		||||
// and/or [MessageDescriptor].
 | 
			
		||||
type MessageDescriptor interface {
 | 
			
		||||
	Descriptor
 | 
			
		||||
 | 
			
		||||
@@ -214,7 +214,7 @@ type MessageDescriptor interface {
 | 
			
		||||
	ExtensionRanges() FieldRanges
 | 
			
		||||
	// ExtensionRangeOptions returns the ith extension range options.
 | 
			
		||||
	//
 | 
			
		||||
	// To avoid a dependency cycle, this method returns a proto.Message value,
 | 
			
		||||
	// To avoid a dependency cycle, this method returns a proto.Message] value,
 | 
			
		||||
	// which always contains a google.protobuf.ExtensionRangeOptions message.
 | 
			
		||||
	// This method returns a typed nil-pointer if no options are present.
 | 
			
		||||
	// The caller must import the descriptorpb package to use this.
 | 
			
		||||
@@ -231,9 +231,9 @@ type MessageDescriptor interface {
 | 
			
		||||
}
 | 
			
		||||
type isMessageDescriptor interface{ ProtoType(MessageDescriptor) }
 | 
			
		||||
 | 
			
		||||
// MessageType encapsulates a MessageDescriptor with a concrete Go implementation.
 | 
			
		||||
// MessageType encapsulates a [MessageDescriptor] with a concrete Go implementation.
 | 
			
		||||
// It is recommended that implementations of this interface also implement the
 | 
			
		||||
// MessageFieldTypes interface.
 | 
			
		||||
// [MessageFieldTypes] interface.
 | 
			
		||||
type MessageType interface {
 | 
			
		||||
	// New returns a newly allocated empty message.
 | 
			
		||||
	// It may return nil for synthetic messages representing a map entry.
 | 
			
		||||
@@ -249,19 +249,19 @@ type MessageType interface {
 | 
			
		||||
	Descriptor() MessageDescriptor
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MessageFieldTypes extends a MessageType by providing type information
 | 
			
		||||
// MessageFieldTypes extends a [MessageType] by providing type information
 | 
			
		||||
// regarding enums and messages referenced by the message fields.
 | 
			
		||||
type MessageFieldTypes interface {
 | 
			
		||||
	MessageType
 | 
			
		||||
 | 
			
		||||
	// Enum returns the EnumType for the ith field in Descriptor.Fields.
 | 
			
		||||
	// Enum returns the EnumType for the ith field in MessageDescriptor.Fields.
 | 
			
		||||
	// It returns nil if the ith field is not an enum kind.
 | 
			
		||||
	// It panics if out of bounds.
 | 
			
		||||
	//
 | 
			
		||||
	// Invariant: mt.Enum(i).Descriptor() == mt.Descriptor().Fields(i).Enum()
 | 
			
		||||
	Enum(i int) EnumType
 | 
			
		||||
 | 
			
		||||
	// Message returns the MessageType for the ith field in Descriptor.Fields.
 | 
			
		||||
	// Message returns the MessageType for the ith field in MessageDescriptor.Fields.
 | 
			
		||||
	// It returns nil if the ith field is not a message or group kind.
 | 
			
		||||
	// It panics if out of bounds.
 | 
			
		||||
	//
 | 
			
		||||
@@ -286,8 +286,8 @@ type MessageDescriptors interface {
 | 
			
		||||
// corresponds with the google.protobuf.FieldDescriptorProto message.
 | 
			
		||||
//
 | 
			
		||||
// It is used for both normal fields defined within the parent message
 | 
			
		||||
// (e.g., MessageDescriptor.Fields) and fields that extend some remote message
 | 
			
		||||
// (e.g., FileDescriptor.Extensions or MessageDescriptor.Extensions).
 | 
			
		||||
// (e.g., [MessageDescriptor.Fields]) and fields that extend some remote message
 | 
			
		||||
// (e.g., [FileDescriptor.Extensions] or [MessageDescriptor.Extensions]).
 | 
			
		||||
type FieldDescriptor interface {
 | 
			
		||||
	Descriptor
 | 
			
		||||
 | 
			
		||||
@@ -344,7 +344,7 @@ type FieldDescriptor interface {
 | 
			
		||||
	// IsMap reports whether this field represents a map,
 | 
			
		||||
	// where the value type for the associated field is a Map.
 | 
			
		||||
	// It is equivalent to checking whether Cardinality is Repeated,
 | 
			
		||||
	// that the Kind is MessageKind, and that Message.IsMapEntry reports true.
 | 
			
		||||
	// that the Kind is MessageKind, and that MessageDescriptor.IsMapEntry reports true.
 | 
			
		||||
	IsMap() bool
 | 
			
		||||
 | 
			
		||||
	// MapKey returns the field descriptor for the key in the map entry.
 | 
			
		||||
@@ -419,7 +419,7 @@ type OneofDescriptor interface {
 | 
			
		||||
 | 
			
		||||
	// IsSynthetic reports whether this is a synthetic oneof created to support
 | 
			
		||||
	// proto3 optional semantics. If true, Fields contains exactly one field
 | 
			
		||||
	// with HasOptionalKeyword specified.
 | 
			
		||||
	// with FieldDescriptor.HasOptionalKeyword specified.
 | 
			
		||||
	IsSynthetic() bool
 | 
			
		||||
 | 
			
		||||
	// Fields is a list of fields belonging to this oneof.
 | 
			
		||||
@@ -442,10 +442,10 @@ type OneofDescriptors interface {
 | 
			
		||||
	doNotImplement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ExtensionDescriptor is an alias of FieldDescriptor for documentation.
 | 
			
		||||
// ExtensionDescriptor is an alias of [FieldDescriptor] for documentation.
 | 
			
		||||
type ExtensionDescriptor = FieldDescriptor
 | 
			
		||||
 | 
			
		||||
// ExtensionTypeDescriptor is an ExtensionDescriptor with an associated ExtensionType.
 | 
			
		||||
// ExtensionTypeDescriptor is an [ExtensionDescriptor] with an associated [ExtensionType].
 | 
			
		||||
type ExtensionTypeDescriptor interface {
 | 
			
		||||
	ExtensionDescriptor
 | 
			
		||||
 | 
			
		||||
@@ -470,12 +470,12 @@ type ExtensionDescriptors interface {
 | 
			
		||||
	doNotImplement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ExtensionType encapsulates an ExtensionDescriptor with a concrete
 | 
			
		||||
// ExtensionType encapsulates an [ExtensionDescriptor] with a concrete
 | 
			
		||||
// Go implementation. The nested field descriptor must be for a extension field.
 | 
			
		||||
//
 | 
			
		||||
// While a normal field is a member of the parent message that it is declared
 | 
			
		||||
// within (see Descriptor.Parent), an extension field is a member of some other
 | 
			
		||||
// target message (see ExtensionDescriptor.Extendee) and may have no
 | 
			
		||||
// within (see [Descriptor.Parent]), an extension field is a member of some other
 | 
			
		||||
// target message (see [FieldDescriptor.ContainingMessage]) and may have no
 | 
			
		||||
// relationship with the parent. However, the full name of an extension field is
 | 
			
		||||
// relative to the parent that it is declared within.
 | 
			
		||||
//
 | 
			
		||||
@@ -532,7 +532,7 @@ type ExtensionType interface {
 | 
			
		||||
// corresponds with the google.protobuf.EnumDescriptorProto message.
 | 
			
		||||
//
 | 
			
		||||
// Nested declarations:
 | 
			
		||||
// EnumValueDescriptor.
 | 
			
		||||
// [EnumValueDescriptor].
 | 
			
		||||
type EnumDescriptor interface {
 | 
			
		||||
	Descriptor
 | 
			
		||||
 | 
			
		||||
@@ -548,7 +548,7 @@ type EnumDescriptor interface {
 | 
			
		||||
}
 | 
			
		||||
type isEnumDescriptor interface{ ProtoType(EnumDescriptor) }
 | 
			
		||||
 | 
			
		||||
// EnumType encapsulates an EnumDescriptor with a concrete Go implementation.
 | 
			
		||||
// EnumType encapsulates an [EnumDescriptor] with a concrete Go implementation.
 | 
			
		||||
type EnumType interface {
 | 
			
		||||
	// New returns an instance of this enum type with its value set to n.
 | 
			
		||||
	New(n EnumNumber) Enum
 | 
			
		||||
@@ -610,7 +610,7 @@ type EnumValueDescriptors interface {
 | 
			
		||||
// ServiceDescriptor describes a service and
 | 
			
		||||
// corresponds with the google.protobuf.ServiceDescriptorProto message.
 | 
			
		||||
//
 | 
			
		||||
// Nested declarations: MethodDescriptor.
 | 
			
		||||
// Nested declarations: [MethodDescriptor].
 | 
			
		||||
type ServiceDescriptor interface {
 | 
			
		||||
	Descriptor
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										24
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/value.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/value.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -27,16 +27,16 @@ type Enum interface {
 | 
			
		||||
// Message is a reflective interface for a concrete message value,
 | 
			
		||||
// encapsulating both type and value information for the message.
 | 
			
		||||
//
 | 
			
		||||
// Accessor/mutators for individual fields are keyed by FieldDescriptor.
 | 
			
		||||
// Accessor/mutators for individual fields are keyed by [FieldDescriptor].
 | 
			
		||||
// For non-extension fields, the descriptor must exactly match the
 | 
			
		||||
// field known by the parent message.
 | 
			
		||||
// For extension fields, the descriptor must implement ExtensionTypeDescriptor,
 | 
			
		||||
// extend the parent message (i.e., have the same message FullName), and
 | 
			
		||||
// For extension fields, the descriptor must implement [ExtensionTypeDescriptor],
 | 
			
		||||
// extend the parent message (i.e., have the same message [FullName]), and
 | 
			
		||||
// be within the parent's extension range.
 | 
			
		||||
//
 | 
			
		||||
// Each field Value can be a scalar or a composite type (Message, List, or Map).
 | 
			
		||||
// See Value for the Go types associated with a FieldDescriptor.
 | 
			
		||||
// Providing a Value that is invalid or of an incorrect type panics.
 | 
			
		||||
// Each field [Value] can be a scalar or a composite type ([Message], [List], or [Map]).
 | 
			
		||||
// See [Value] for the Go types associated with a [FieldDescriptor].
 | 
			
		||||
// Providing a [Value] that is invalid or of an incorrect type panics.
 | 
			
		||||
type Message interface {
 | 
			
		||||
	// Descriptor returns message descriptor, which contains only the protobuf
 | 
			
		||||
	// type information for the message.
 | 
			
		||||
@@ -152,7 +152,7 @@ type Message interface {
 | 
			
		||||
	// This method may return nil.
 | 
			
		||||
	//
 | 
			
		||||
	// The returned methods type is identical to
 | 
			
		||||
	// "google.golang.org/protobuf/runtime/protoiface".Methods.
 | 
			
		||||
	// google.golang.org/protobuf/runtime/protoiface.Methods.
 | 
			
		||||
	// Consult the protoiface package documentation for details.
 | 
			
		||||
	ProtoMethods() *methods
 | 
			
		||||
}
 | 
			
		||||
@@ -175,8 +175,8 @@ func (b RawFields) IsValid() bool {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// List is a zero-indexed, ordered list.
 | 
			
		||||
// The element Value type is determined by FieldDescriptor.Kind.
 | 
			
		||||
// Providing a Value that is invalid or of an incorrect type panics.
 | 
			
		||||
// The element [Value] type is determined by [FieldDescriptor.Kind].
 | 
			
		||||
// Providing a [Value] that is invalid or of an incorrect type panics.
 | 
			
		||||
type List interface {
 | 
			
		||||
	// Len reports the number of entries in the List.
 | 
			
		||||
	// Get, Set, and Truncate panic with out of bound indexes.
 | 
			
		||||
@@ -226,9 +226,9 @@ type List interface {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Map is an unordered, associative map.
 | 
			
		||||
// The entry MapKey type is determined by FieldDescriptor.MapKey.Kind.
 | 
			
		||||
// The entry Value type is determined by FieldDescriptor.MapValue.Kind.
 | 
			
		||||
// Providing a MapKey or Value that is invalid or of an incorrect type panics.
 | 
			
		||||
// The entry [MapKey] type is determined by [FieldDescriptor.MapKey].Kind.
 | 
			
		||||
// The entry [Value] type is determined by [FieldDescriptor.MapValue].Kind.
 | 
			
		||||
// Providing a [MapKey] or [Value] that is invalid or of an incorrect type panics.
 | 
			
		||||
type Map interface {
 | 
			
		||||
	// Len reports the number of elements in the map.
 | 
			
		||||
	Len() int
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -24,19 +24,19 @@ import (
 | 
			
		||||
//     Unlike the == operator, a NaN is equal to another NaN.
 | 
			
		||||
//
 | 
			
		||||
//   - Enums are equal if they contain the same number.
 | 
			
		||||
//     Since Value does not contain an enum descriptor,
 | 
			
		||||
//     Since [Value] does not contain an enum descriptor,
 | 
			
		||||
//     enum values do not consider the type of the enum.
 | 
			
		||||
//
 | 
			
		||||
//   - Other scalar values are equal if they contain the same value.
 | 
			
		||||
//
 | 
			
		||||
//   - Message values are equal if they belong to the same message descriptor,
 | 
			
		||||
//   - [Message] values are equal if they belong to the same message descriptor,
 | 
			
		||||
//     have the same set of populated known and extension field values,
 | 
			
		||||
//     and the same set of unknown fields values.
 | 
			
		||||
//
 | 
			
		||||
//   - Lists are equal if they are the same length and
 | 
			
		||||
//   - [List] values are equal if they are the same length and
 | 
			
		||||
//     each corresponding element is equal.
 | 
			
		||||
//
 | 
			
		||||
//   - Maps are equal if they have the same set of keys and
 | 
			
		||||
//   - [Map] values are equal if they have the same set of keys and
 | 
			
		||||
//     the corresponding value for each key is equal.
 | 
			
		||||
func (v1 Value) Equal(v2 Value) bool {
 | 
			
		||||
	return equalValue(v1, v2)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										44
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										44
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -11,7 +11,7 @@ import (
 | 
			
		||||
 | 
			
		||||
// Value is a union where only one Go type may be set at a time.
 | 
			
		||||
// The Value is used to represent all possible values a field may take.
 | 
			
		||||
// The following shows which Go type is used to represent each proto Kind:
 | 
			
		||||
// The following shows which Go type is used to represent each proto [Kind]:
 | 
			
		||||
//
 | 
			
		||||
//	╔════════════╤═════════════════════════════════════╗
 | 
			
		||||
//	║ Go type    │ Protobuf kind                       ║
 | 
			
		||||
@@ -31,22 +31,22 @@ import (
 | 
			
		||||
//
 | 
			
		||||
// Multiple protobuf Kinds may be represented by a single Go type if the type
 | 
			
		||||
// can losslessly represent the information for the proto kind. For example,
 | 
			
		||||
// Int64Kind, Sint64Kind, and Sfixed64Kind are all represented by int64,
 | 
			
		||||
// [Int64Kind], [Sint64Kind], and [Sfixed64Kind] are all represented by int64,
 | 
			
		||||
// but use different integer encoding methods.
 | 
			
		||||
//
 | 
			
		||||
// The List or Map types are used if the field cardinality is repeated.
 | 
			
		||||
// A field is a List if FieldDescriptor.IsList reports true.
 | 
			
		||||
// A field is a Map if FieldDescriptor.IsMap reports true.
 | 
			
		||||
// The [List] or [Map] types are used if the field cardinality is repeated.
 | 
			
		||||
// A field is a [List] if [FieldDescriptor.IsList] reports true.
 | 
			
		||||
// A field is a [Map] if [FieldDescriptor.IsMap] reports true.
 | 
			
		||||
//
 | 
			
		||||
// Converting to/from a Value and a concrete Go value panics on type mismatch.
 | 
			
		||||
// For example, ValueOf("hello").Int() panics because this attempts to
 | 
			
		||||
// For example, [ValueOf]("hello").Int() panics because this attempts to
 | 
			
		||||
// retrieve an int64 from a string.
 | 
			
		||||
//
 | 
			
		||||
// List, Map, and Message Values are called "composite" values.
 | 
			
		||||
// [List], [Map], and [Message] Values are called "composite" values.
 | 
			
		||||
//
 | 
			
		||||
// A composite Value may alias (reference) memory at some location,
 | 
			
		||||
// such that changes to the Value updates the that location.
 | 
			
		||||
// A composite value acquired with a Mutable method, such as Message.Mutable,
 | 
			
		||||
// A composite value acquired with a Mutable method, such as [Message.Mutable],
 | 
			
		||||
// always references the source object.
 | 
			
		||||
//
 | 
			
		||||
// For example:
 | 
			
		||||
@@ -65,7 +65,7 @@ import (
 | 
			
		||||
//	// appending to the List here may or may not modify the message.
 | 
			
		||||
//	list.Append(protoreflect.ValueOfInt32(0))
 | 
			
		||||
//
 | 
			
		||||
// Some operations, such as Message.Get, may return an "empty, read-only"
 | 
			
		||||
// Some operations, such as [Message.Get], may return an "empty, read-only"
 | 
			
		||||
// composite Value. Modifying an empty, read-only value panics.
 | 
			
		||||
type Value value
 | 
			
		||||
 | 
			
		||||
@@ -306,7 +306,7 @@ func (v Value) Float() float64 {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// String returns v as a string. Since this method implements fmt.Stringer,
 | 
			
		||||
// String returns v as a string. Since this method implements [fmt.Stringer],
 | 
			
		||||
// this returns the formatted string value for any non-string type.
 | 
			
		||||
func (v Value) String() string {
 | 
			
		||||
	switch v.typ {
 | 
			
		||||
@@ -327,7 +327,7 @@ func (v Value) Bytes() []byte {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Enum returns v as a EnumNumber and panics if the type is not a EnumNumber.
 | 
			
		||||
// Enum returns v as a [EnumNumber] and panics if the type is not a [EnumNumber].
 | 
			
		||||
func (v Value) Enum() EnumNumber {
 | 
			
		||||
	switch v.typ {
 | 
			
		||||
	case enumType:
 | 
			
		||||
@@ -337,7 +337,7 @@ func (v Value) Enum() EnumNumber {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Message returns v as a Message and panics if the type is not a Message.
 | 
			
		||||
// Message returns v as a [Message] and panics if the type is not a [Message].
 | 
			
		||||
func (v Value) Message() Message {
 | 
			
		||||
	switch vi := v.getIface().(type) {
 | 
			
		||||
	case Message:
 | 
			
		||||
@@ -347,7 +347,7 @@ func (v Value) Message() Message {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// List returns v as a List and panics if the type is not a List.
 | 
			
		||||
// List returns v as a [List] and panics if the type is not a [List].
 | 
			
		||||
func (v Value) List() List {
 | 
			
		||||
	switch vi := v.getIface().(type) {
 | 
			
		||||
	case List:
 | 
			
		||||
@@ -357,7 +357,7 @@ func (v Value) List() List {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Map returns v as a Map and panics if the type is not a Map.
 | 
			
		||||
// Map returns v as a [Map] and panics if the type is not a [Map].
 | 
			
		||||
func (v Value) Map() Map {
 | 
			
		||||
	switch vi := v.getIface().(type) {
 | 
			
		||||
	case Map:
 | 
			
		||||
@@ -367,7 +367,7 @@ func (v Value) Map() Map {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MapKey returns v as a MapKey and panics for invalid MapKey types.
 | 
			
		||||
// MapKey returns v as a [MapKey] and panics for invalid [MapKey] types.
 | 
			
		||||
func (v Value) MapKey() MapKey {
 | 
			
		||||
	switch v.typ {
 | 
			
		||||
	case boolType, int32Type, int64Type, uint32Type, uint64Type, stringType:
 | 
			
		||||
@@ -378,8 +378,8 @@ func (v Value) MapKey() MapKey {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MapKey is used to index maps, where the Go type of the MapKey must match
 | 
			
		||||
// the specified key Kind (see MessageDescriptor.IsMapEntry).
 | 
			
		||||
// The following shows what Go type is used to represent each proto Kind:
 | 
			
		||||
// the specified key [Kind] (see [MessageDescriptor.IsMapEntry]).
 | 
			
		||||
// The following shows what Go type is used to represent each proto [Kind]:
 | 
			
		||||
//
 | 
			
		||||
//	╔═════════╤═════════════════════════════════════╗
 | 
			
		||||
//	║ Go type │ Protobuf kind                       ║
 | 
			
		||||
@@ -392,13 +392,13 @@ func (v Value) MapKey() MapKey {
 | 
			
		||||
//	║ string  │ StringKind                          ║
 | 
			
		||||
//	╚═════════╧═════════════════════════════════════╝
 | 
			
		||||
//
 | 
			
		||||
// A MapKey is constructed and accessed through a Value:
 | 
			
		||||
// A MapKey is constructed and accessed through a [Value]:
 | 
			
		||||
//
 | 
			
		||||
//	k := ValueOf("hash").MapKey() // convert string to MapKey
 | 
			
		||||
//	s := k.String()               // convert MapKey to string
 | 
			
		||||
//
 | 
			
		||||
// The MapKey is a strict subset of valid types used in Value;
 | 
			
		||||
// converting a Value to a MapKey with an invalid type panics.
 | 
			
		||||
// The MapKey is a strict subset of valid types used in [Value];
 | 
			
		||||
// converting a [Value] to a MapKey with an invalid type panics.
 | 
			
		||||
type MapKey value
 | 
			
		||||
 | 
			
		||||
// IsValid reports whether k is populated with a value.
 | 
			
		||||
@@ -426,13 +426,13 @@ func (k MapKey) Uint() uint64 {
 | 
			
		||||
	return Value(k).Uint()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// String returns k as a string. Since this method implements fmt.Stringer,
 | 
			
		||||
// String returns k as a string. Since this method implements [fmt.Stringer],
 | 
			
		||||
// this returns the formatted string value for any non-string type.
 | 
			
		||||
func (k MapKey) String() string {
 | 
			
		||||
	return Value(k).String()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Value returns k as a Value.
 | 
			
		||||
// Value returns k as a [Value].
 | 
			
		||||
func (k MapKey) Value() Value {
 | 
			
		||||
	return Value(k)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,8 @@
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
//go:build !purego && !appengine
 | 
			
		||||
// +build !purego,!appengine
 | 
			
		||||
//go:build !purego && !appengine && !go1.21
 | 
			
		||||
// +build !purego,!appengine,!go1.21
 | 
			
		||||
 | 
			
		||||
package protoreflect
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										87
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,87 @@
 | 
			
		||||
// 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.
 | 
			
		||||
 | 
			
		||||
//go:build !purego && !appengine && go1.21
 | 
			
		||||
// +build !purego,!appengine,go1.21
 | 
			
		||||
 | 
			
		||||
package protoreflect
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"unsafe"
 | 
			
		||||
 | 
			
		||||
	"google.golang.org/protobuf/internal/pragma"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type (
 | 
			
		||||
	ifaceHeader struct {
 | 
			
		||||
		_    [0]interface{} // if interfaces have greater alignment than unsafe.Pointer, this will enforce it.
 | 
			
		||||
		Type unsafe.Pointer
 | 
			
		||||
		Data unsafe.Pointer
 | 
			
		||||
	}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	nilType     = typeOf(nil)
 | 
			
		||||
	boolType    = typeOf(*new(bool))
 | 
			
		||||
	int32Type   = typeOf(*new(int32))
 | 
			
		||||
	int64Type   = typeOf(*new(int64))
 | 
			
		||||
	uint32Type  = typeOf(*new(uint32))
 | 
			
		||||
	uint64Type  = typeOf(*new(uint64))
 | 
			
		||||
	float32Type = typeOf(*new(float32))
 | 
			
		||||
	float64Type = typeOf(*new(float64))
 | 
			
		||||
	stringType  = typeOf(*new(string))
 | 
			
		||||
	bytesType   = typeOf(*new([]byte))
 | 
			
		||||
	enumType    = typeOf(*new(EnumNumber))
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// typeOf returns a pointer to the Go type information.
 | 
			
		||||
// The pointer is comparable and equal if and only if the types are identical.
 | 
			
		||||
func typeOf(t interface{}) unsafe.Pointer {
 | 
			
		||||
	return (*ifaceHeader)(unsafe.Pointer(&t)).Type
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// value is a union where only one type can be represented at a time.
 | 
			
		||||
// The struct is 24B large on 64-bit systems and requires the minimum storage
 | 
			
		||||
// necessary to represent each possible type.
 | 
			
		||||
//
 | 
			
		||||
// The Go GC needs to be able to scan variables containing pointers.
 | 
			
		||||
// As such, pointers and non-pointers cannot be intermixed.
 | 
			
		||||
type value struct {
 | 
			
		||||
	pragma.DoNotCompare // 0B
 | 
			
		||||
 | 
			
		||||
	// typ stores the type of the value as a pointer to the Go type.
 | 
			
		||||
	typ unsafe.Pointer // 8B
 | 
			
		||||
 | 
			
		||||
	// ptr stores the data pointer for a String, Bytes, or interface value.
 | 
			
		||||
	ptr unsafe.Pointer // 8B
 | 
			
		||||
 | 
			
		||||
	// num stores a Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, or
 | 
			
		||||
	// Enum value as a raw uint64.
 | 
			
		||||
	//
 | 
			
		||||
	// It is also used to store the length of a String or Bytes value;
 | 
			
		||||
	// the capacity is ignored.
 | 
			
		||||
	num uint64 // 8B
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func valueOfString(v string) Value {
 | 
			
		||||
	return Value{typ: stringType, ptr: unsafe.Pointer(unsafe.StringData(v)), num: uint64(len(v))}
 | 
			
		||||
}
 | 
			
		||||
func valueOfBytes(v []byte) Value {
 | 
			
		||||
	return Value{typ: bytesType, ptr: unsafe.Pointer(unsafe.SliceData(v)), num: uint64(len(v))}
 | 
			
		||||
}
 | 
			
		||||
func valueOfIface(v interface{}) Value {
 | 
			
		||||
	p := (*ifaceHeader)(unsafe.Pointer(&v))
 | 
			
		||||
	return Value{typ: p.Type, ptr: p.Data}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (v Value) getString() string {
 | 
			
		||||
	return unsafe.String((*byte)(v.ptr), v.num)
 | 
			
		||||
}
 | 
			
		||||
func (v Value) getBytes() []byte {
 | 
			
		||||
	return unsafe.Slice((*byte)(v.ptr), v.num)
 | 
			
		||||
}
 | 
			
		||||
func (v Value) getIface() (x interface{}) {
 | 
			
		||||
	*(*ifaceHeader)(unsafe.Pointer(&x)) = ifaceHeader{Type: v.typ, Data: v.ptr}
 | 
			
		||||
	return x
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										24
									
								
								vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -5,12 +5,12 @@
 | 
			
		||||
// Package protoregistry provides data structures to register and lookup
 | 
			
		||||
// protobuf descriptor types.
 | 
			
		||||
//
 | 
			
		||||
// The Files registry contains file descriptors and provides the ability
 | 
			
		||||
// The [Files] registry contains file descriptors and provides the ability
 | 
			
		||||
// to iterate over the files or lookup a specific descriptor within the files.
 | 
			
		||||
// Files only contains protobuf descriptors and has no understanding of Go
 | 
			
		||||
// [Files] only contains protobuf descriptors and has no understanding of Go
 | 
			
		||||
// type information that may be associated with each descriptor.
 | 
			
		||||
//
 | 
			
		||||
// The Types registry contains descriptor types for which there is a known
 | 
			
		||||
// The [Types] registry contains descriptor types for which there is a known
 | 
			
		||||
// Go type associated with that descriptor. It provides the ability to iterate
 | 
			
		||||
// over the registered types or lookup a type by name.
 | 
			
		||||
package protoregistry
 | 
			
		||||
@@ -218,7 +218,7 @@ func (r *Files) checkGenProtoConflict(path string) {
 | 
			
		||||
 | 
			
		||||
// FindDescriptorByName looks up a descriptor by the full name.
 | 
			
		||||
//
 | 
			
		||||
// This returns (nil, NotFound) if not found.
 | 
			
		||||
// This returns (nil, [NotFound]) if not found.
 | 
			
		||||
func (r *Files) FindDescriptorByName(name protoreflect.FullName) (protoreflect.Descriptor, error) {
 | 
			
		||||
	if r == nil {
 | 
			
		||||
		return nil, NotFound
 | 
			
		||||
@@ -310,7 +310,7 @@ func (s *nameSuffix) Pop() (name protoreflect.Name) {
 | 
			
		||||
 | 
			
		||||
// FindFileByPath looks up a file by the path.
 | 
			
		||||
//
 | 
			
		||||
// This returns (nil, NotFound) if not found.
 | 
			
		||||
// This returns (nil, [NotFound]) if not found.
 | 
			
		||||
// This returns an error if multiple files have the same path.
 | 
			
		||||
func (r *Files) FindFileByPath(path string) (protoreflect.FileDescriptor, error) {
 | 
			
		||||
	if r == nil {
 | 
			
		||||
@@ -431,7 +431,7 @@ func rangeTopLevelDescriptors(fd protoreflect.FileDescriptor, f func(protoreflec
 | 
			
		||||
// A compliant implementation must deterministically return the same type
 | 
			
		||||
// if no error is encountered.
 | 
			
		||||
//
 | 
			
		||||
// The Types type implements this interface.
 | 
			
		||||
// The [Types] type implements this interface.
 | 
			
		||||
type MessageTypeResolver interface {
 | 
			
		||||
	// FindMessageByName looks up a message by its full name.
 | 
			
		||||
	// E.g., "google.protobuf.Any"
 | 
			
		||||
@@ -451,7 +451,7 @@ type MessageTypeResolver interface {
 | 
			
		||||
// A compliant implementation must deterministically return the same type
 | 
			
		||||
// if no error is encountered.
 | 
			
		||||
//
 | 
			
		||||
// The Types type implements this interface.
 | 
			
		||||
// The [Types] type implements this interface.
 | 
			
		||||
type ExtensionTypeResolver interface {
 | 
			
		||||
	// FindExtensionByName looks up a extension field by the field's full name.
 | 
			
		||||
	// Note that this is the full name of the field as determined by
 | 
			
		||||
@@ -590,7 +590,7 @@ func (r *Types) register(kind string, desc protoreflect.Descriptor, typ interfac
 | 
			
		||||
// FindEnumByName looks up an enum by its full name.
 | 
			
		||||
// E.g., "google.protobuf.Field.Kind".
 | 
			
		||||
//
 | 
			
		||||
// This returns (nil, NotFound) if not found.
 | 
			
		||||
// This returns (nil, [NotFound]) if not found.
 | 
			
		||||
func (r *Types) FindEnumByName(enum protoreflect.FullName) (protoreflect.EnumType, error) {
 | 
			
		||||
	if r == nil {
 | 
			
		||||
		return nil, NotFound
 | 
			
		||||
@@ -611,7 +611,7 @@ func (r *Types) FindEnumByName(enum protoreflect.FullName) (protoreflect.EnumTyp
 | 
			
		||||
// FindMessageByName looks up a message by its full name,
 | 
			
		||||
// e.g. "google.protobuf.Any".
 | 
			
		||||
//
 | 
			
		||||
// This returns (nil, NotFound) if not found.
 | 
			
		||||
// This returns (nil, [NotFound]) if not found.
 | 
			
		||||
func (r *Types) FindMessageByName(message protoreflect.FullName) (protoreflect.MessageType, error) {
 | 
			
		||||
	if r == nil {
 | 
			
		||||
		return nil, NotFound
 | 
			
		||||
@@ -632,7 +632,7 @@ func (r *Types) FindMessageByName(message protoreflect.FullName) (protoreflect.M
 | 
			
		||||
// FindMessageByURL looks up a message by a URL identifier.
 | 
			
		||||
// See documentation on google.protobuf.Any.type_url for the URL format.
 | 
			
		||||
//
 | 
			
		||||
// This returns (nil, NotFound) if not found.
 | 
			
		||||
// This returns (nil, [NotFound]) if not found.
 | 
			
		||||
func (r *Types) FindMessageByURL(url string) (protoreflect.MessageType, error) {
 | 
			
		||||
	// This function is similar to FindMessageByName but
 | 
			
		||||
	// truncates anything before and including '/' in the URL.
 | 
			
		||||
@@ -662,7 +662,7 @@ func (r *Types) FindMessageByURL(url string) (protoreflect.MessageType, error) {
 | 
			
		||||
// where the extension is declared and is unrelated to the full name of the
 | 
			
		||||
// message being extended.
 | 
			
		||||
//
 | 
			
		||||
// This returns (nil, NotFound) if not found.
 | 
			
		||||
// This returns (nil, [NotFound]) if not found.
 | 
			
		||||
func (r *Types) FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) {
 | 
			
		||||
	if r == nil {
 | 
			
		||||
		return nil, NotFound
 | 
			
		||||
@@ -703,7 +703,7 @@ func (r *Types) FindExtensionByName(field protoreflect.FullName) (protoreflect.E
 | 
			
		||||
// FindExtensionByNumber looks up a extension field by the field number
 | 
			
		||||
// within some parent message, identified by full name.
 | 
			
		||||
//
 | 
			
		||||
// This returns (nil, NotFound) if not found.
 | 
			
		||||
// This returns (nil, [NotFound]) if not found.
 | 
			
		||||
func (r *Types) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) {
 | 
			
		||||
	if r == nil {
 | 
			
		||||
		return nil, NotFound
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user