diff options
| author | 2024-03-11 10:12:06 +0000 | |
|---|---|---|
| committer | 2024-03-11 10:12:06 +0000 | |
| commit | e24efcac8b67baa9454bf27631e5e49f898a88d4 (patch) | |
| tree | d9adec2f05e1d8714edee66062a4b95a81ee2a61 /vendor/google.golang.org/protobuf/internal | |
| parent | [bugfix] Fix whitespace move_id issue (#2742) (diff) | |
| download | gotosocial-e24efcac8b67baa9454bf27631e5e49f898a88d4.tar.xz | |
[chore]: Bump github.com/gin-contrib/cors from 1.5.0 to 1.7.0 (#2745)
Diffstat (limited to 'vendor/google.golang.org/protobuf/internal')
24 files changed, 1163 insertions, 133 deletions
diff --git a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go index db5248e1b..a45625c8d 100644 --- a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +++ b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go @@ -83,7 +83,13 @@ func formatListOpt(vs list, isRoot, allowMulti bool) string {  	case protoreflect.FileImports:  		for i := 0; i < vs.Len(); i++ {  			var rs records -			rs.Append(reflect.ValueOf(vs.Get(i)), "Path", "Package", "IsPublic", "IsWeak") +			rv := reflect.ValueOf(vs.Get(i)) +			rs.Append(rv, []methodAndName{ +				{rv.MethodByName("Path"), "Path"}, +				{rv.MethodByName("Package"), "Package"}, +				{rv.MethodByName("IsPublic"), "IsPublic"}, +				{rv.MethodByName("IsWeak"), "IsWeak"}, +			}...)  			ss = append(ss, "{"+rs.Join()+"}")  		}  		return start + joinStrings(ss, allowMulti) + end @@ -92,34 +98,26 @@ func formatListOpt(vs list, isRoot, allowMulti bool) string {  		for i := 0; i < vs.Len(); i++ {  			m := reflect.ValueOf(vs).MethodByName("Get")  			v := m.Call([]reflect.Value{reflect.ValueOf(i)})[0].Interface() -			ss = append(ss, formatDescOpt(v.(protoreflect.Descriptor), false, allowMulti && !isEnumValue)) +			ss = append(ss, formatDescOpt(v.(protoreflect.Descriptor), false, allowMulti && !isEnumValue, nil))  		}  		return start + joinStrings(ss, allowMulti && isEnumValue) + end  	}  } -// descriptorAccessors is a list of accessors to print for each descriptor. -// -// Do not print all accessors since some contain redundant information, -// while others are pointers that we do not want to follow since the descriptor -// is actually a cyclic graph. -// -// Using a list allows us to print the accessors in a sensible order. -var descriptorAccessors = map[reflect.Type][]string{ -	reflect.TypeOf((*protoreflect.FileDescriptor)(nil)).Elem():      {"Path", "Package", "Imports", "Messages", "Enums", "Extensions", "Services"}, -	reflect.TypeOf((*protoreflect.MessageDescriptor)(nil)).Elem():   {"IsMapEntry", "Fields", "Oneofs", "ReservedNames", "ReservedRanges", "RequiredNumbers", "ExtensionRanges", "Messages", "Enums", "Extensions"}, -	reflect.TypeOf((*protoreflect.FieldDescriptor)(nil)).Elem():     {"Number", "Cardinality", "Kind", "HasJSONName", "JSONName", "HasPresence", "IsExtension", "IsPacked", "IsWeak", "IsList", "IsMap", "MapKey", "MapValue", "HasDefault", "Default", "ContainingOneof", "ContainingMessage", "Message", "Enum"}, -	reflect.TypeOf((*protoreflect.OneofDescriptor)(nil)).Elem():     {"Fields"}, // not directly used; must keep in sync with formatDescOpt -	reflect.TypeOf((*protoreflect.EnumDescriptor)(nil)).Elem():      {"Values", "ReservedNames", "ReservedRanges"}, -	reflect.TypeOf((*protoreflect.EnumValueDescriptor)(nil)).Elem(): {"Number"}, -	reflect.TypeOf((*protoreflect.ServiceDescriptor)(nil)).Elem():   {"Methods"}, -	reflect.TypeOf((*protoreflect.MethodDescriptor)(nil)).Elem():    {"Input", "Output", "IsStreamingClient", "IsStreamingServer"}, +type methodAndName struct { +	method reflect.Value +	name   string  }  func FormatDesc(s fmt.State, r rune, t protoreflect.Descriptor) { -	io.WriteString(s, formatDescOpt(t, true, r == 'v' && (s.Flag('+') || s.Flag('#')))) +	io.WriteString(s, formatDescOpt(t, true, r == 'v' && (s.Flag('+') || s.Flag('#')), nil))  } -func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { + +func InternalFormatDescOptForTesting(t protoreflect.Descriptor, isRoot, allowMulti bool, record func(string)) string { +	return formatDescOpt(t, isRoot, allowMulti, record) +} + +func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool, record func(string)) string {  	rv := reflect.ValueOf(t)  	rt := rv.MethodByName("ProtoType").Type().In(0) @@ -129,26 +127,60 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string {  	}  	_, isFile := t.(protoreflect.FileDescriptor) -	rs := records{allowMulti: allowMulti} +	rs := records{ +		allowMulti: allowMulti, +		record:     record, +	}  	if t.IsPlaceholder() {  		if isFile { -			rs.Append(rv, "Path", "Package", "IsPlaceholder") +			rs.Append(rv, []methodAndName{ +				{rv.MethodByName("Path"), "Path"}, +				{rv.MethodByName("Package"), "Package"}, +				{rv.MethodByName("IsPlaceholder"), "IsPlaceholder"}, +			}...)  		} else { -			rs.Append(rv, "FullName", "IsPlaceholder") +			rs.Append(rv, []methodAndName{ +				{rv.MethodByName("FullName"), "FullName"}, +				{rv.MethodByName("IsPlaceholder"), "IsPlaceholder"}, +			}...)  		}  	} else {  		switch {  		case isFile: -			rs.Append(rv, "Syntax") +			rs.Append(rv, methodAndName{rv.MethodByName("Syntax"), "Syntax"})  		case isRoot: -			rs.Append(rv, "Syntax", "FullName") +			rs.Append(rv, []methodAndName{ +				{rv.MethodByName("Syntax"), "Syntax"}, +				{rv.MethodByName("FullName"), "FullName"}, +			}...)  		default: -			rs.Append(rv, "Name") +			rs.Append(rv, methodAndName{rv.MethodByName("Name"), "Name"})  		}  		switch t := t.(type) {  		case protoreflect.FieldDescriptor: -			for _, s := range descriptorAccessors[rt] { -				switch s { +			accessors := []methodAndName{ +				{rv.MethodByName("Number"), "Number"}, +				{rv.MethodByName("Cardinality"), "Cardinality"}, +				{rv.MethodByName("Kind"), "Kind"}, +				{rv.MethodByName("HasJSONName"), "HasJSONName"}, +				{rv.MethodByName("JSONName"), "JSONName"}, +				{rv.MethodByName("HasPresence"), "HasPresence"}, +				{rv.MethodByName("IsExtension"), "IsExtension"}, +				{rv.MethodByName("IsPacked"), "IsPacked"}, +				{rv.MethodByName("IsWeak"), "IsWeak"}, +				{rv.MethodByName("IsList"), "IsList"}, +				{rv.MethodByName("IsMap"), "IsMap"}, +				{rv.MethodByName("MapKey"), "MapKey"}, +				{rv.MethodByName("MapValue"), "MapValue"}, +				{rv.MethodByName("HasDefault"), "HasDefault"}, +				{rv.MethodByName("Default"), "Default"}, +				{rv.MethodByName("ContainingOneof"), "ContainingOneof"}, +				{rv.MethodByName("ContainingMessage"), "ContainingMessage"}, +				{rv.MethodByName("Message"), "Message"}, +				{rv.MethodByName("Enum"), "Enum"}, +			} +			for _, s := range accessors { +				switch s.name {  				case "MapKey":  					if k := t.MapKey(); k != nil {  						rs.recs = append(rs.recs, [2]string{"MapKey", k.Kind().String()}) @@ -157,20 +189,20 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string {  					if v := t.MapValue(); v != nil {  						switch v.Kind() {  						case protoreflect.EnumKind: -							rs.recs = append(rs.recs, [2]string{"MapValue", string(v.Enum().FullName())}) +							rs.AppendRecs("MapValue", [2]string{"MapValue", string(v.Enum().FullName())})  						case protoreflect.MessageKind, protoreflect.GroupKind: -							rs.recs = append(rs.recs, [2]string{"MapValue", string(v.Message().FullName())}) +							rs.AppendRecs("MapValue", [2]string{"MapValue", string(v.Message().FullName())})  						default: -							rs.recs = append(rs.recs, [2]string{"MapValue", v.Kind().String()}) +							rs.AppendRecs("MapValue", [2]string{"MapValue", v.Kind().String()})  						}  					}  				case "ContainingOneof":  					if od := t.ContainingOneof(); od != nil { -						rs.recs = append(rs.recs, [2]string{"Oneof", string(od.Name())}) +						rs.AppendRecs("ContainingOneof", [2]string{"Oneof", string(od.Name())})  					}  				case "ContainingMessage":  					if t.IsExtension() { -						rs.recs = append(rs.recs, [2]string{"Extendee", string(t.ContainingMessage().FullName())}) +						rs.AppendRecs("ContainingMessage", [2]string{"Extendee", string(t.ContainingMessage().FullName())})  					}  				case "Message":  					if !t.IsMap() { @@ -187,13 +219,61 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string {  				ss = append(ss, string(fs.Get(i).Name()))  			}  			if len(ss) > 0 { -				rs.recs = append(rs.recs, [2]string{"Fields", "[" + joinStrings(ss, false) + "]"}) +				rs.AppendRecs("Fields", [2]string{"Fields", "[" + joinStrings(ss, false) + "]"})  			} -		default: -			rs.Append(rv, descriptorAccessors[rt]...) + +		case protoreflect.FileDescriptor: +			rs.Append(rv, []methodAndName{ +				{rv.MethodByName("Path"), "Path"}, +				{rv.MethodByName("Package"), "Package"}, +				{rv.MethodByName("Imports"), "Imports"}, +				{rv.MethodByName("Messages"), "Messages"}, +				{rv.MethodByName("Enums"), "Enums"}, +				{rv.MethodByName("Extensions"), "Extensions"}, +				{rv.MethodByName("Services"), "Services"}, +			}...) + +		case protoreflect.MessageDescriptor: +			rs.Append(rv, []methodAndName{ +				{rv.MethodByName("IsMapEntry"), "IsMapEntry"}, +				{rv.MethodByName("Fields"), "Fields"}, +				{rv.MethodByName("Oneofs"), "Oneofs"}, +				{rv.MethodByName("ReservedNames"), "ReservedNames"}, +				{rv.MethodByName("ReservedRanges"), "ReservedRanges"}, +				{rv.MethodByName("RequiredNumbers"), "RequiredNumbers"}, +				{rv.MethodByName("ExtensionRanges"), "ExtensionRanges"}, +				{rv.MethodByName("Messages"), "Messages"}, +				{rv.MethodByName("Enums"), "Enums"}, +				{rv.MethodByName("Extensions"), "Extensions"}, +			}...) + +		case protoreflect.EnumDescriptor: +			rs.Append(rv, []methodAndName{ +				{rv.MethodByName("Values"), "Values"}, +				{rv.MethodByName("ReservedNames"), "ReservedNames"}, +				{rv.MethodByName("ReservedRanges"), "ReservedRanges"}, +			}...) + +		case protoreflect.EnumValueDescriptor: +			rs.Append(rv, []methodAndName{ +				{rv.MethodByName("Number"), "Number"}, +			}...) + +		case protoreflect.ServiceDescriptor: +			rs.Append(rv, []methodAndName{ +				{rv.MethodByName("Methods"), "Methods"}, +			}...) + +		case protoreflect.MethodDescriptor: +			rs.Append(rv, []methodAndName{ +				{rv.MethodByName("Input"), "Input"}, +				{rv.MethodByName("Output"), "Output"}, +				{rv.MethodByName("IsStreamingClient"), "IsStreamingClient"}, +				{rv.MethodByName("IsStreamingServer"), "IsStreamingServer"}, +			}...)  		} -		if rv.MethodByName("GoType").IsValid() { -			rs.Append(rv, "GoType") +		if m := rv.MethodByName("GoType"); m.IsValid() { +			rs.Append(rv, methodAndName{m, "GoType"})  		}  	}  	return start + rs.Join() + end @@ -202,19 +282,34 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string {  type records struct {  	recs       [][2]string  	allowMulti bool + +	// record is a function that will be called for every Append() or +	// AppendRecs() call, to be used for testing with the +	// InternalFormatDescOptForTesting function. +	record func(string)  } -func (rs *records) Append(v reflect.Value, accessors ...string) { +func (rs *records) AppendRecs(fieldName string, newRecs [2]string) { +	if rs.record != nil { +		rs.record(fieldName) +	} +	rs.recs = append(rs.recs, newRecs) +} + +func (rs *records) Append(v reflect.Value, accessors ...methodAndName) {  	for _, a := range accessors { +		if rs.record != nil { +			rs.record(a.name) +		}  		var rv reflect.Value -		if m := v.MethodByName(a); m.IsValid() { -			rv = m.Call(nil)[0] +		if a.method.IsValid() { +			rv = a.method.Call(nil)[0]  		}  		if v.Kind() == reflect.Struct && !rv.IsValid() { -			rv = v.FieldByName(a) +			rv = v.FieldByName(a.name)  		}  		if !rv.IsValid() { -			panic(fmt.Sprintf("unknown accessor: %v.%s", v.Type(), a)) +			panic(fmt.Sprintf("unknown accessor: %v.%s", v.Type(), a.name))  		}  		if _, ok := rv.Interface().(protoreflect.Value); ok {  			rv = rv.MethodByName("Interface").Call(nil)[0] @@ -261,7 +356,7 @@ func (rs *records) Append(v reflect.Value, accessors ...string) {  		default:  			s = fmt.Sprint(v)  		} -		rs.recs = append(rs.recs, [2]string{a, s}) +		rs.recs = append(rs.recs, [2]string{a.name, s})  	}  } diff --git a/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go b/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go new file mode 100644 index 000000000..14656b65a --- /dev/null +++ b/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go @@ -0,0 +1,12 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package editiondefaults contains the binary representation of the editions +// defaults. +package editiondefaults + +import _ "embed" + +//go:embed editions_defaults.binpb +var Defaults []byte diff --git a/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb new file mode 100644 index 000000000..18f075687 --- /dev/null +++ b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb @@ -0,0 +1,4 @@ + + (0æ + (0ç + (0è æ(è
\ No newline at end of file diff --git a/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go b/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go index d043a6ebe..d2b3ac031 100644 --- a/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go +++ b/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go @@ -121,7 +121,7 @@ func (d *Decoder) Read() (Token, error) {  	case ObjectClose:  		if len(d.openStack) == 0 || -			d.lastToken.kind == comma || +			d.lastToken.kind&(Name|comma) != 0 ||  			d.openStack[len(d.openStack)-1] != ObjectOpen {  			return Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString())  		} diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go index 7c3689bae..8826bcf40 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go @@ -21,11 +21,26 @@ import (  	"google.golang.org/protobuf/reflect/protoregistry"  ) +// Edition is an Enum for proto2.Edition +type Edition int32 + +// These values align with the value of Enum in descriptor.proto which allows +// direct conversion between the proto enum and this enum. +const ( +	EditionUnknown     Edition = 0 +	EditionProto2      Edition = 998 +	EditionProto3      Edition = 999 +	Edition2023        Edition = 1000 +	EditionUnsupported Edition = 100000 +) +  // The types in this file may have a suffix:  //	• L0: Contains fields common to all descriptors (except File) and  //	must be initialized up front.  //	• L1: Contains fields specific to a descriptor and -//	must be initialized up front. +//	must be initialized up front. If the associated proto uses Editions, the +//  Editions features must always be resolved. If not explicitly set, the +//  appropriate default must be resolved and set.  //	• L2: Contains fields that are lazily initialized when constructing  //	from the raw file descriptor. When constructing as a literal, the L2  //	fields must be initialized up front. @@ -44,6 +59,7 @@ type (  	}  	FileL1 struct {  		Syntax  protoreflect.Syntax +		Edition Edition // Only used if Syntax == Editions  		Path    string  		Package protoreflect.FullName @@ -51,12 +67,41 @@ type (  		Messages   Messages  		Extensions Extensions  		Services   Services + +		EditionFeatures EditionFeatures  	}  	FileL2 struct {  		Options   func() protoreflect.ProtoMessage  		Imports   FileImports  		Locations SourceLocations  	} + +	EditionFeatures struct { +		// IsFieldPresence is true if field_presence is EXPLICIT +		// https://protobuf.dev/editions/features/#field_presence +		IsFieldPresence bool +		// IsFieldPresence is true if field_presence is LEGACY_REQUIRED +		// https://protobuf.dev/editions/features/#field_presence +		IsLegacyRequired bool +		// IsOpenEnum is true if enum_type is OPEN +		// https://protobuf.dev/editions/features/#enum_type +		IsOpenEnum bool +		// IsPacked is true if repeated_field_encoding is PACKED +		// https://protobuf.dev/editions/features/#repeated_field_encoding +		IsPacked bool +		// IsUTF8Validated is true if utf_validation is VERIFY +		// https://protobuf.dev/editions/features/#utf8_validation +		IsUTF8Validated bool +		// IsDelimitedEncoded is true if message_encoding is DELIMITED +		// https://protobuf.dev/editions/features/#message_encoding +		IsDelimitedEncoded bool +		// IsJSONCompliant is true if json_format is ALLOW +		// https://protobuf.dev/editions/features/#json_format +		IsJSONCompliant bool +		// GenerateLegacyUnmarshalJSON determines if the plugin generates the +		// UnmarshalJSON([]byte) error method for enums. +		GenerateLegacyUnmarshalJSON bool +	}  )  func (fd *File) ParentFile() protoreflect.FileDescriptor { return fd } @@ -117,6 +162,8 @@ type (  	}  	EnumL1 struct {  		eagerValues bool // controls whether EnumL2.Values is already populated + +		EditionFeatures EditionFeatures  	}  	EnumL2 struct {  		Options        func() protoreflect.ProtoMessage @@ -178,6 +225,8 @@ type (  		Extensions   Extensions  		IsMapEntry   bool // promoted from google.protobuf.MessageOptions  		IsMessageSet bool // promoted from google.protobuf.MessageOptions + +		EditionFeatures EditionFeatures  	}  	MessageL2 struct {  		Options               func() protoreflect.ProtoMessage @@ -210,6 +259,8 @@ type (  		ContainingOneof  protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields  		Enum             protoreflect.EnumDescriptor  		Message          protoreflect.MessageDescriptor + +		EditionFeatures EditionFeatures  	}  	Oneof struct { @@ -219,6 +270,8 @@ type (  	OneofL1 struct {  		Options func() protoreflect.ProtoMessage  		Fields  OneofFields // must be consistent with Message.Fields.ContainingOneof + +		EditionFeatures EditionFeatures  	}  ) @@ -268,23 +321,36 @@ func (fd *Field) Options() protoreflect.ProtoMessage {  }  func (fd *Field) Number() protoreflect.FieldNumber      { return fd.L1.Number }  func (fd *Field) Cardinality() protoreflect.Cardinality { return fd.L1.Cardinality } -func (fd *Field) Kind() protoreflect.Kind               { return fd.L1.Kind } -func (fd *Field) HasJSONName() bool                     { return fd.L1.StringName.hasJSON } -func (fd *Field) JSONName() string                      { return fd.L1.StringName.getJSON(fd) } -func (fd *Field) TextName() string                      { return fd.L1.StringName.getText(fd) } +func (fd *Field) Kind() protoreflect.Kind { +	return fd.L1.Kind +} +func (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON } +func (fd *Field) JSONName() string  { return fd.L1.StringName.getJSON(fd) } +func (fd *Field) TextName() string  { return fd.L1.StringName.getText(fd) }  func (fd *Field) HasPresence() bool { -	return fd.L1.Cardinality != protoreflect.Repeated && (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 || fd.L1.Message != nil || fd.L1.ContainingOneof != nil) +	if fd.L1.Cardinality == protoreflect.Repeated { +		return false +	} +	explicitFieldPresence := fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsFieldPresence +	return fd.Syntax() == protoreflect.Proto2 || explicitFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil  }  func (fd *Field) HasOptionalKeyword() bool {  	return (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional  }  func (fd *Field) IsPacked() bool { -	if !fd.L1.HasPacked && fd.L0.ParentFile.L1.Syntax != protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Repeated { -		switch fd.L1.Kind { -		case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: -		default: -			return true -		} +	if fd.L1.Cardinality != protoreflect.Repeated { +		return false +	} +	switch fd.L1.Kind { +	case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: +		return false +	} +	if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { +		return fd.L1.EditionFeatures.IsPacked +	} +	if fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3 { +		// proto3 repeated fields are packed by default. +		return !fd.L1.HasPacked || fd.L1.IsPacked  	}  	return fd.L1.IsPacked  } @@ -333,6 +399,9 @@ func (fd *Field) ProtoType(protoreflect.FieldDescriptor) {}  // WARNING: This method is exempt from the compatibility promise and may be  // removed in the future without warning.  func (fd *Field) EnforceUTF8() bool { +	if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { +		return fd.L1.EditionFeatures.IsUTF8Validated +	}  	if fd.L1.HasEnforceUTF8 {  		return fd.L1.EnforceUTF8  	} @@ -359,10 +428,11 @@ type (  		L2 *ExtensionL2 // protected by fileDesc.once  	}  	ExtensionL1 struct { -		Number      protoreflect.FieldNumber -		Extendee    protoreflect.MessageDescriptor -		Cardinality protoreflect.Cardinality -		Kind        protoreflect.Kind +		Number          protoreflect.FieldNumber +		Extendee        protoreflect.MessageDescriptor +		Cardinality     protoreflect.Cardinality +		Kind            protoreflect.Kind +		EditionFeatures EditionFeatures  	}  	ExtensionL2 struct {  		Options          func() protoreflect.ProtoMessage diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go index 4a1584c9d..237e64fd2 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go @@ -5,6 +5,7 @@  package filedesc  import ( +	"fmt"  	"sync"  	"google.golang.org/protobuf/encoding/protowire" @@ -98,6 +99,7 @@ func (fd *File) unmarshalSeed(b []byte) {  	var prevField protoreflect.FieldNumber  	var numEnums, numMessages, numExtensions, numServices int  	var posEnums, posMessages, posExtensions, posServices int +	var options []byte  	b0 := b  	for len(b) > 0 {  		num, typ, n := protowire.ConsumeTag(b) @@ -113,6 +115,8 @@ func (fd *File) unmarshalSeed(b []byte) {  					fd.L1.Syntax = protoreflect.Proto2  				case "proto3":  					fd.L1.Syntax = protoreflect.Proto3 +				case "editions": +					fd.L1.Syntax = protoreflect.Editions  				default:  					panic("invalid syntax")  				} @@ -120,6 +124,8 @@ func (fd *File) unmarshalSeed(b []byte) {  				fd.L1.Path = sb.MakeString(v)  			case genid.FileDescriptorProto_Package_field_number:  				fd.L1.Package = protoreflect.FullName(sb.MakeString(v)) +			case genid.FileDescriptorProto_Options_field_number: +				options = v  			case genid.FileDescriptorProto_EnumType_field_number:  				if prevField != genid.FileDescriptorProto_EnumType_field_number {  					if numEnums > 0 { @@ -154,6 +160,13 @@ func (fd *File) unmarshalSeed(b []byte) {  				numServices++  			}  			prevField = num +		case protowire.VarintType: +			v, m := protowire.ConsumeVarint(b) +			b = b[m:] +			switch num { +			case genid.FileDescriptorProto_Edition_field_number: +				fd.L1.Edition = Edition(v) +			}  		default:  			m := protowire.ConsumeFieldValue(num, typ, b)  			b = b[m:] @@ -166,6 +179,15 @@ func (fd *File) unmarshalSeed(b []byte) {  		fd.L1.Syntax = protoreflect.Proto2  	} +	if fd.L1.Syntax == protoreflect.Editions { +		fd.L1.EditionFeatures = getFeaturesFor(fd.L1.Edition) +	} + +	// Parse editions features from options if any +	if options != nil { +		fd.unmarshalSeedOptions(options) +	} +  	// Must allocate all declarations before parsing each descriptor type  	// to ensure we handled all descriptors in "flattened ordering".  	if numEnums > 0 { @@ -219,6 +241,28 @@ func (fd *File) unmarshalSeed(b []byte) {  	}  } +func (fd *File) unmarshalSeedOptions(b []byte) { +	for b := b; len(b) > 0; { +		num, typ, n := protowire.ConsumeTag(b) +		b = b[n:] +		switch typ { +		case protowire.BytesType: +			v, m := protowire.ConsumeBytes(b) +			b = b[m:] +			switch num { +			case genid.FileOptions_Features_field_number: +				if fd.Syntax() != protoreflect.Editions { +					panic(fmt.Sprintf("invalid descriptor: using edition features in a proto with syntax %s", fd.Syntax())) +				} +				fd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures) +			} +		default: +			m := protowire.ConsumeFieldValue(num, typ, b) +			b = b[m:] +		} +	} +} +  func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {  	ed.L0.ParentFile = pf  	ed.L0.Parent = pd @@ -275,6 +319,7 @@ func (md *Message) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protor  	md.L0.ParentFile = pf  	md.L0.Parent = pd  	md.L0.Index = i +	md.L1.EditionFeatures = featuresFromParentDesc(md.Parent())  	var prevField protoreflect.FieldNumber  	var numEnums, numMessages, numExtensions int @@ -380,6 +425,13 @@ func (md *Message) unmarshalSeedOptions(b []byte) {  			case genid.MessageOptions_MessageSetWireFormat_field_number:  				md.L1.IsMessageSet = protowire.DecodeBool(v)  			} +		case protowire.BytesType: +			v, m := protowire.ConsumeBytes(b) +			b = b[m:] +			switch num { +			case genid.MessageOptions_Features_field_number: +				md.L1.EditionFeatures = unmarshalFeatureSet(v, md.L1.EditionFeatures) +			}  		default:  			m := protowire.ConsumeFieldValue(num, typ, b)  			b = b[m:] diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go index 736a19a75..482a61cc1 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go @@ -414,6 +414,7 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref  	fd.L0.ParentFile = pf  	fd.L0.Parent = pd  	fd.L0.Index = i +	fd.L1.EditionFeatures = featuresFromParentDesc(fd.Parent())  	var rawTypeName []byte  	var rawOptions []byte @@ -465,6 +466,12 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref  			b = b[m:]  		}  	} +	if fd.Syntax() == protoreflect.Editions && fd.L1.Kind == protoreflect.MessageKind && fd.L1.EditionFeatures.IsDelimitedEncoded { +		fd.L1.Kind = protoreflect.GroupKind +	} +	if fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsLegacyRequired { +		fd.L1.Cardinality = protoreflect.Required +	}  	if rawTypeName != nil {  		name := makeFullName(sb, rawTypeName)  		switch fd.L1.Kind { @@ -497,6 +504,13 @@ func (fd *Field) unmarshalOptions(b []byte) {  				fd.L1.HasEnforceUTF8 = true  				fd.L1.EnforceUTF8 = protowire.DecodeBool(v)  			} +		case protowire.BytesType: +			v, m := protowire.ConsumeBytes(b) +			b = b[m:] +			switch num { +			case genid.FieldOptions_Features_field_number: +				fd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures) +			}  		default:  			m := protowire.ConsumeFieldValue(num, typ, b)  			b = b[m:] @@ -534,6 +548,7 @@ func (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref  func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) {  	var rawTypeName []byte  	var rawOptions []byte +	xd.L1.EditionFeatures = featuresFromParentDesc(xd.L1.Extendee)  	xd.L2 = new(ExtensionL2)  	for len(b) > 0 {  		num, typ, n := protowire.ConsumeTag(b) @@ -565,6 +580,12 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) {  			b = b[m:]  		}  	} +	if xd.Syntax() == protoreflect.Editions && xd.L1.Kind == protoreflect.MessageKind && xd.L1.EditionFeatures.IsDelimitedEncoded { +		xd.L1.Kind = protoreflect.GroupKind +	} +	if xd.Syntax() == protoreflect.Editions && xd.L1.EditionFeatures.IsLegacyRequired { +		xd.L1.Cardinality = protoreflect.Required +	}  	if rawTypeName != nil {  		name := makeFullName(sb, rawTypeName)  		switch xd.L1.Kind { @@ -589,6 +610,13 @@ func (xd *Extension) unmarshalOptions(b []byte) {  			case genid.FieldOptions_Packed_field_number:  				xd.L2.IsPacked = protowire.DecodeBool(v)  			} +		case protowire.BytesType: +			v, m := protowire.ConsumeBytes(b) +			b = b[m:] +			switch num { +			case genid.FieldOptions_Features_field_number: +				xd.L1.EditionFeatures = unmarshalFeatureSet(v, xd.L1.EditionFeatures) +			}  		default:  			m := protowire.ConsumeFieldValue(num, typ, b)  			b = b[m:] diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/editions.go b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go new file mode 100644 index 000000000..0375a49d4 --- /dev/null +++ b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go @@ -0,0 +1,142 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package filedesc + +import ( +	"fmt" + +	"google.golang.org/protobuf/encoding/protowire" +	"google.golang.org/protobuf/internal/editiondefaults" +	"google.golang.org/protobuf/internal/genid" +	"google.golang.org/protobuf/reflect/protoreflect" +) + +var defaultsCache = make(map[Edition]EditionFeatures) + +func init() { +	unmarshalEditionDefaults(editiondefaults.Defaults) +} + +func unmarshalGoFeature(b []byte, parent EditionFeatures) EditionFeatures { +	for len(b) > 0 { +		num, _, n := protowire.ConsumeTag(b) +		b = b[n:] +		switch num { +		case genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number: +			v, m := protowire.ConsumeVarint(b) +			b = b[m:] +			parent.GenerateLegacyUnmarshalJSON = protowire.DecodeBool(v) +		default: +			panic(fmt.Sprintf("unkown field number %d while unmarshalling GoFeatures", num)) +		} +	} +	return parent +} + +func unmarshalFeatureSet(b []byte, parent EditionFeatures) EditionFeatures { +	for len(b) > 0 { +		num, typ, n := protowire.ConsumeTag(b) +		b = b[n:] +		switch typ { +		case protowire.VarintType: +			v, m := protowire.ConsumeVarint(b) +			b = b[m:] +			switch num { +			case genid.FeatureSet_FieldPresence_field_number: +				parent.IsFieldPresence = v == genid.FeatureSet_EXPLICIT_enum_value || v == genid.FeatureSet_LEGACY_REQUIRED_enum_value +				parent.IsLegacyRequired = v == genid.FeatureSet_LEGACY_REQUIRED_enum_value +			case genid.FeatureSet_EnumType_field_number: +				parent.IsOpenEnum = v == genid.FeatureSet_OPEN_enum_value +			case genid.FeatureSet_RepeatedFieldEncoding_field_number: +				parent.IsPacked = v == genid.FeatureSet_PACKED_enum_value +			case genid.FeatureSet_Utf8Validation_field_number: +				parent.IsUTF8Validated = v == genid.FeatureSet_VERIFY_enum_value +			case genid.FeatureSet_MessageEncoding_field_number: +				parent.IsDelimitedEncoded = v == genid.FeatureSet_DELIMITED_enum_value +			case genid.FeatureSet_JsonFormat_field_number: +				parent.IsJSONCompliant = v == genid.FeatureSet_ALLOW_enum_value +			default: +				panic(fmt.Sprintf("unkown field number %d while unmarshalling FeatureSet", num)) +			} +		case protowire.BytesType: +			v, m := protowire.ConsumeBytes(b) +			b = b[m:] +			switch num { +			case genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number: +				parent = unmarshalGoFeature(v, parent) +			} +		} +	} + +	return parent +} + +func featuresFromParentDesc(parentDesc protoreflect.Descriptor) EditionFeatures { +	var parentFS EditionFeatures +	switch p := parentDesc.(type) { +	case *File: +		parentFS = p.L1.EditionFeatures +	case *Message: +		parentFS = p.L1.EditionFeatures +	default: +		panic(fmt.Sprintf("unknown parent type %T", parentDesc)) +	} +	return parentFS +} + +func unmarshalEditionDefault(b []byte) { +	var ed Edition +	var fs EditionFeatures +	for len(b) > 0 { +		num, typ, n := protowire.ConsumeTag(b) +		b = b[n:] +		switch typ { +		case protowire.VarintType: +			v, m := protowire.ConsumeVarint(b) +			b = b[m:] +			switch num { +			case genid.FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number: +				ed = Edition(v) +			} +		case protowire.BytesType: +			v, m := protowire.ConsumeBytes(b) +			b = b[m:] +			switch num { +			case genid.FeatureSetDefaults_FeatureSetEditionDefault_Features_field_number: +				fs = unmarshalFeatureSet(v, fs) +			} +		} +	} +	defaultsCache[ed] = fs +} + +func unmarshalEditionDefaults(b []byte) { +	for len(b) > 0 { +		num, _, n := protowire.ConsumeTag(b) +		b = b[n:] +		switch num { +		case genid.FeatureSetDefaults_Defaults_field_number: +			def, m := protowire.ConsumeBytes(b) +			b = b[m:] +			unmarshalEditionDefault(def) +		case genid.FeatureSetDefaults_MinimumEdition_field_number, +			genid.FeatureSetDefaults_MaximumEdition_field_number: +			// We don't care about the minimum and maximum editions. If the +			// edition we are looking for later on is not in the cache we know +			// it is outside of the range between minimum and maximum edition. +			_, m := protowire.ConsumeVarint(b) +			b = b[m:] +		default: +			panic(fmt.Sprintf("unkown field number %d while unmarshalling EditionDefault", num)) +		} +	} +} + +func getFeaturesFor(ed Edition) EditionFeatures { +	if def, ok := defaultsCache[ed]; ok { +		return def +	} +	panic(fmt.Sprintf("unsupported edition: %v", ed)) +} diff --git a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go index 136f1b215..40272c893 100644 --- a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +++ b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go @@ -12,6 +12,27 @@ import (  const File_google_protobuf_descriptor_proto = "google/protobuf/descriptor.proto" +// Full and short names for google.protobuf.Edition. +const ( +	Edition_enum_fullname = "google.protobuf.Edition" +	Edition_enum_name     = "Edition" +) + +// Enum values for google.protobuf.Edition. +const ( +	Edition_EDITION_UNKNOWN_enum_value         = 0 +	Edition_EDITION_PROTO2_enum_value          = 998 +	Edition_EDITION_PROTO3_enum_value          = 999 +	Edition_EDITION_2023_enum_value            = 1000 +	Edition_EDITION_2024_enum_value            = 1001 +	Edition_EDITION_1_TEST_ONLY_enum_value     = 1 +	Edition_EDITION_2_TEST_ONLY_enum_value     = 2 +	Edition_EDITION_99997_TEST_ONLY_enum_value = 99997 +	Edition_EDITION_99998_TEST_ONLY_enum_value = 99998 +	Edition_EDITION_99999_TEST_ONLY_enum_value = 99999 +	Edition_EDITION_MAX_enum_value             = 2147483647 +) +  // Names for google.protobuf.FileDescriptorSet.  const (  	FileDescriptorSet_message_name     protoreflect.Name     = "FileDescriptorSet" @@ -81,7 +102,7 @@ const (  	FileDescriptorProto_Options_field_number          protoreflect.FieldNumber = 8  	FileDescriptorProto_SourceCodeInfo_field_number   protoreflect.FieldNumber = 9  	FileDescriptorProto_Syntax_field_number           protoreflect.FieldNumber = 12 -	FileDescriptorProto_Edition_field_number          protoreflect.FieldNumber = 13 +	FileDescriptorProto_Edition_field_number          protoreflect.FieldNumber = 14  )  // Names for google.protobuf.DescriptorProto. @@ -184,10 +205,12 @@ const (  const (  	ExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option"  	ExtensionRangeOptions_Declaration_field_name         protoreflect.Name = "declaration" +	ExtensionRangeOptions_Features_field_name            protoreflect.Name = "features"  	ExtensionRangeOptions_Verification_field_name        protoreflect.Name = "verification"  	ExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.uninterpreted_option"  	ExtensionRangeOptions_Declaration_field_fullname         protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.declaration" +	ExtensionRangeOptions_Features_field_fullname            protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.features"  	ExtensionRangeOptions_Verification_field_fullname        protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.verification"  ) @@ -195,6 +218,7 @@ const (  const (  	ExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999  	ExtensionRangeOptions_Declaration_field_number         protoreflect.FieldNumber = 2 +	ExtensionRangeOptions_Features_field_number            protoreflect.FieldNumber = 50  	ExtensionRangeOptions_Verification_field_number        protoreflect.FieldNumber = 3  ) @@ -204,6 +228,12 @@ const (  	ExtensionRangeOptions_VerificationState_enum_name     = "VerificationState"  ) +// Enum values for google.protobuf.ExtensionRangeOptions.VerificationState. +const ( +	ExtensionRangeOptions_DECLARATION_enum_value = 0 +	ExtensionRangeOptions_UNVERIFIED_enum_value  = 1 +) +  // Names for google.protobuf.ExtensionRangeOptions.Declaration.  const (  	ExtensionRangeOptions_Declaration_message_name     protoreflect.Name     = "Declaration" @@ -212,29 +242,26 @@ const (  // Field names for google.protobuf.ExtensionRangeOptions.Declaration.  const ( -	ExtensionRangeOptions_Declaration_Number_field_name     protoreflect.Name = "number" -	ExtensionRangeOptions_Declaration_FullName_field_name   protoreflect.Name = "full_name" -	ExtensionRangeOptions_Declaration_Type_field_name       protoreflect.Name = "type" -	ExtensionRangeOptions_Declaration_IsRepeated_field_name protoreflect.Name = "is_repeated" -	ExtensionRangeOptions_Declaration_Reserved_field_name   protoreflect.Name = "reserved" -	ExtensionRangeOptions_Declaration_Repeated_field_name   protoreflect.Name = "repeated" +	ExtensionRangeOptions_Declaration_Number_field_name   protoreflect.Name = "number" +	ExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = "full_name" +	ExtensionRangeOptions_Declaration_Type_field_name     protoreflect.Name = "type" +	ExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = "reserved" +	ExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = "repeated" -	ExtensionRangeOptions_Declaration_Number_field_fullname     protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" -	ExtensionRangeOptions_Declaration_FullName_field_fullname   protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" -	ExtensionRangeOptions_Declaration_Type_field_fullname       protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" -	ExtensionRangeOptions_Declaration_IsRepeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.is_repeated" -	ExtensionRangeOptions_Declaration_Reserved_field_fullname   protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" -	ExtensionRangeOptions_Declaration_Repeated_field_fullname   protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated" +	ExtensionRangeOptions_Declaration_Number_field_fullname   protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" +	ExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" +	ExtensionRangeOptions_Declaration_Type_field_fullname     protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" +	ExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" +	ExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated"  )  // Field numbers for google.protobuf.ExtensionRangeOptions.Declaration.  const ( -	ExtensionRangeOptions_Declaration_Number_field_number     protoreflect.FieldNumber = 1 -	ExtensionRangeOptions_Declaration_FullName_field_number   protoreflect.FieldNumber = 2 -	ExtensionRangeOptions_Declaration_Type_field_number       protoreflect.FieldNumber = 3 -	ExtensionRangeOptions_Declaration_IsRepeated_field_number protoreflect.FieldNumber = 4 -	ExtensionRangeOptions_Declaration_Reserved_field_number   protoreflect.FieldNumber = 5 -	ExtensionRangeOptions_Declaration_Repeated_field_number   protoreflect.FieldNumber = 6 +	ExtensionRangeOptions_Declaration_Number_field_number   protoreflect.FieldNumber = 1 +	ExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2 +	ExtensionRangeOptions_Declaration_Type_field_number     protoreflect.FieldNumber = 3 +	ExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5 +	ExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6  )  // Names for google.protobuf.FieldDescriptorProto. @@ -291,12 +318,41 @@ const (  	FieldDescriptorProto_Type_enum_name     = "Type"  ) +// Enum values for google.protobuf.FieldDescriptorProto.Type. +const ( +	FieldDescriptorProto_TYPE_DOUBLE_enum_value   = 1 +	FieldDescriptorProto_TYPE_FLOAT_enum_value    = 2 +	FieldDescriptorProto_TYPE_INT64_enum_value    = 3 +	FieldDescriptorProto_TYPE_UINT64_enum_value   = 4 +	FieldDescriptorProto_TYPE_INT32_enum_value    = 5 +	FieldDescriptorProto_TYPE_FIXED64_enum_value  = 6 +	FieldDescriptorProto_TYPE_FIXED32_enum_value  = 7 +	FieldDescriptorProto_TYPE_BOOL_enum_value     = 8 +	FieldDescriptorProto_TYPE_STRING_enum_value   = 9 +	FieldDescriptorProto_TYPE_GROUP_enum_value    = 10 +	FieldDescriptorProto_TYPE_MESSAGE_enum_value  = 11 +	FieldDescriptorProto_TYPE_BYTES_enum_value    = 12 +	FieldDescriptorProto_TYPE_UINT32_enum_value   = 13 +	FieldDescriptorProto_TYPE_ENUM_enum_value     = 14 +	FieldDescriptorProto_TYPE_SFIXED32_enum_value = 15 +	FieldDescriptorProto_TYPE_SFIXED64_enum_value = 16 +	FieldDescriptorProto_TYPE_SINT32_enum_value   = 17 +	FieldDescriptorProto_TYPE_SINT64_enum_value   = 18 +) +  // Full and short names for google.protobuf.FieldDescriptorProto.Label.  const (  	FieldDescriptorProto_Label_enum_fullname = "google.protobuf.FieldDescriptorProto.Label"  	FieldDescriptorProto_Label_enum_name     = "Label"  ) +// Enum values for google.protobuf.FieldDescriptorProto.Label. +const ( +	FieldDescriptorProto_LABEL_OPTIONAL_enum_value = 1 +	FieldDescriptorProto_LABEL_REPEATED_enum_value = 3 +	FieldDescriptorProto_LABEL_REQUIRED_enum_value = 2 +) +  // Names for google.protobuf.OneofDescriptorProto.  const (  	OneofDescriptorProto_message_name     protoreflect.Name     = "OneofDescriptorProto" @@ -468,7 +524,6 @@ const (  	FileOptions_CcGenericServices_field_name         protoreflect.Name = "cc_generic_services"  	FileOptions_JavaGenericServices_field_name       protoreflect.Name = "java_generic_services"  	FileOptions_PyGenericServices_field_name         protoreflect.Name = "py_generic_services" -	FileOptions_PhpGenericServices_field_name        protoreflect.Name = "php_generic_services"  	FileOptions_Deprecated_field_name                protoreflect.Name = "deprecated"  	FileOptions_CcEnableArenas_field_name            protoreflect.Name = "cc_enable_arenas"  	FileOptions_ObjcClassPrefix_field_name           protoreflect.Name = "objc_class_prefix" @@ -478,6 +533,7 @@ const (  	FileOptions_PhpNamespace_field_name              protoreflect.Name = "php_namespace"  	FileOptions_PhpMetadataNamespace_field_name      protoreflect.Name = "php_metadata_namespace"  	FileOptions_RubyPackage_field_name               protoreflect.Name = "ruby_package" +	FileOptions_Features_field_name                  protoreflect.Name = "features"  	FileOptions_UninterpretedOption_field_name       protoreflect.Name = "uninterpreted_option"  	FileOptions_JavaPackage_field_fullname               protoreflect.FullName = "google.protobuf.FileOptions.java_package" @@ -490,7 +546,6 @@ const (  	FileOptions_CcGenericServices_field_fullname         protoreflect.FullName = "google.protobuf.FileOptions.cc_generic_services"  	FileOptions_JavaGenericServices_field_fullname       protoreflect.FullName = "google.protobuf.FileOptions.java_generic_services"  	FileOptions_PyGenericServices_field_fullname         protoreflect.FullName = "google.protobuf.FileOptions.py_generic_services" -	FileOptions_PhpGenericServices_field_fullname        protoreflect.FullName = "google.protobuf.FileOptions.php_generic_services"  	FileOptions_Deprecated_field_fullname                protoreflect.FullName = "google.protobuf.FileOptions.deprecated"  	FileOptions_CcEnableArenas_field_fullname            protoreflect.FullName = "google.protobuf.FileOptions.cc_enable_arenas"  	FileOptions_ObjcClassPrefix_field_fullname           protoreflect.FullName = "google.protobuf.FileOptions.objc_class_prefix" @@ -500,6 +555,7 @@ const (  	FileOptions_PhpNamespace_field_fullname              protoreflect.FullName = "google.protobuf.FileOptions.php_namespace"  	FileOptions_PhpMetadataNamespace_field_fullname      protoreflect.FullName = "google.protobuf.FileOptions.php_metadata_namespace"  	FileOptions_RubyPackage_field_fullname               protoreflect.FullName = "google.protobuf.FileOptions.ruby_package" +	FileOptions_Features_field_fullname                  protoreflect.FullName = "google.protobuf.FileOptions.features"  	FileOptions_UninterpretedOption_field_fullname       protoreflect.FullName = "google.protobuf.FileOptions.uninterpreted_option"  ) @@ -515,7 +571,6 @@ const (  	FileOptions_CcGenericServices_field_number         protoreflect.FieldNumber = 16  	FileOptions_JavaGenericServices_field_number       protoreflect.FieldNumber = 17  	FileOptions_PyGenericServices_field_number         protoreflect.FieldNumber = 18 -	FileOptions_PhpGenericServices_field_number        protoreflect.FieldNumber = 42  	FileOptions_Deprecated_field_number                protoreflect.FieldNumber = 23  	FileOptions_CcEnableArenas_field_number            protoreflect.FieldNumber = 31  	FileOptions_ObjcClassPrefix_field_number           protoreflect.FieldNumber = 36 @@ -525,6 +580,7 @@ const (  	FileOptions_PhpNamespace_field_number              protoreflect.FieldNumber = 41  	FileOptions_PhpMetadataNamespace_field_number      protoreflect.FieldNumber = 44  	FileOptions_RubyPackage_field_number               protoreflect.FieldNumber = 45 +	FileOptions_Features_field_number                  protoreflect.FieldNumber = 50  	FileOptions_UninterpretedOption_field_number       protoreflect.FieldNumber = 999  ) @@ -534,6 +590,13 @@ const (  	FileOptions_OptimizeMode_enum_name     = "OptimizeMode"  ) +// Enum values for google.protobuf.FileOptions.OptimizeMode. +const ( +	FileOptions_SPEED_enum_value        = 1 +	FileOptions_CODE_SIZE_enum_value    = 2 +	FileOptions_LITE_RUNTIME_enum_value = 3 +) +  // Names for google.protobuf.MessageOptions.  const (  	MessageOptions_message_name     protoreflect.Name     = "MessageOptions" @@ -547,6 +610,7 @@ const (  	MessageOptions_Deprecated_field_name                         protoreflect.Name = "deprecated"  	MessageOptions_MapEntry_field_name                           protoreflect.Name = "map_entry"  	MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" +	MessageOptions_Features_field_name                           protoreflect.Name = "features"  	MessageOptions_UninterpretedOption_field_name                protoreflect.Name = "uninterpreted_option"  	MessageOptions_MessageSetWireFormat_field_fullname               protoreflect.FullName = "google.protobuf.MessageOptions.message_set_wire_format" @@ -554,6 +618,7 @@ const (  	MessageOptions_Deprecated_field_fullname                         protoreflect.FullName = "google.protobuf.MessageOptions.deprecated"  	MessageOptions_MapEntry_field_fullname                           protoreflect.FullName = "google.protobuf.MessageOptions.map_entry"  	MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated_legacy_json_field_conflicts" +	MessageOptions_Features_field_fullname                           protoreflect.FullName = "google.protobuf.MessageOptions.features"  	MessageOptions_UninterpretedOption_field_fullname                protoreflect.FullName = "google.protobuf.MessageOptions.uninterpreted_option"  ) @@ -564,6 +629,7 @@ const (  	MessageOptions_Deprecated_field_number                         protoreflect.FieldNumber = 3  	MessageOptions_MapEntry_field_number                           protoreflect.FieldNumber = 7  	MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 11 +	MessageOptions_Features_field_number                           protoreflect.FieldNumber = 12  	MessageOptions_UninterpretedOption_field_number                protoreflect.FieldNumber = 999  ) @@ -584,8 +650,9 @@ const (  	FieldOptions_Weak_field_name                protoreflect.Name = "weak"  	FieldOptions_DebugRedact_field_name         protoreflect.Name = "debug_redact"  	FieldOptions_Retention_field_name           protoreflect.Name = "retention" -	FieldOptions_Target_field_name              protoreflect.Name = "target"  	FieldOptions_Targets_field_name             protoreflect.Name = "targets" +	FieldOptions_EditionDefaults_field_name     protoreflect.Name = "edition_defaults" +	FieldOptions_Features_field_name            protoreflect.Name = "features"  	FieldOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option"  	FieldOptions_Ctype_field_fullname               protoreflect.FullName = "google.protobuf.FieldOptions.ctype" @@ -597,8 +664,9 @@ const (  	FieldOptions_Weak_field_fullname                protoreflect.FullName = "google.protobuf.FieldOptions.weak"  	FieldOptions_DebugRedact_field_fullname         protoreflect.FullName = "google.protobuf.FieldOptions.debug_redact"  	FieldOptions_Retention_field_fullname           protoreflect.FullName = "google.protobuf.FieldOptions.retention" -	FieldOptions_Target_field_fullname              protoreflect.FullName = "google.protobuf.FieldOptions.target"  	FieldOptions_Targets_field_fullname             protoreflect.FullName = "google.protobuf.FieldOptions.targets" +	FieldOptions_EditionDefaults_field_fullname     protoreflect.FullName = "google.protobuf.FieldOptions.edition_defaults" +	FieldOptions_Features_field_fullname            protoreflect.FullName = "google.protobuf.FieldOptions.features"  	FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option"  ) @@ -613,8 +681,9 @@ const (  	FieldOptions_Weak_field_number                protoreflect.FieldNumber = 10  	FieldOptions_DebugRedact_field_number         protoreflect.FieldNumber = 16  	FieldOptions_Retention_field_number           protoreflect.FieldNumber = 17 -	FieldOptions_Target_field_number              protoreflect.FieldNumber = 18  	FieldOptions_Targets_field_number             protoreflect.FieldNumber = 19 +	FieldOptions_EditionDefaults_field_number     protoreflect.FieldNumber = 20 +	FieldOptions_Features_field_number            protoreflect.FieldNumber = 21  	FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999  ) @@ -624,24 +693,80 @@ const (  	FieldOptions_CType_enum_name     = "CType"  ) +// Enum values for google.protobuf.FieldOptions.CType. +const ( +	FieldOptions_STRING_enum_value       = 0 +	FieldOptions_CORD_enum_value         = 1 +	FieldOptions_STRING_PIECE_enum_value = 2 +) +  // Full and short names for google.protobuf.FieldOptions.JSType.  const (  	FieldOptions_JSType_enum_fullname = "google.protobuf.FieldOptions.JSType"  	FieldOptions_JSType_enum_name     = "JSType"  ) +// Enum values for google.protobuf.FieldOptions.JSType. +const ( +	FieldOptions_JS_NORMAL_enum_value = 0 +	FieldOptions_JS_STRING_enum_value = 1 +	FieldOptions_JS_NUMBER_enum_value = 2 +) +  // Full and short names for google.protobuf.FieldOptions.OptionRetention.  const (  	FieldOptions_OptionRetention_enum_fullname = "google.protobuf.FieldOptions.OptionRetention"  	FieldOptions_OptionRetention_enum_name     = "OptionRetention"  ) +// Enum values for google.protobuf.FieldOptions.OptionRetention. +const ( +	FieldOptions_RETENTION_UNKNOWN_enum_value = 0 +	FieldOptions_RETENTION_RUNTIME_enum_value = 1 +	FieldOptions_RETENTION_SOURCE_enum_value  = 2 +) +  // Full and short names for google.protobuf.FieldOptions.OptionTargetType.  const (  	FieldOptions_OptionTargetType_enum_fullname = "google.protobuf.FieldOptions.OptionTargetType"  	FieldOptions_OptionTargetType_enum_name     = "OptionTargetType"  ) +// Enum values for google.protobuf.FieldOptions.OptionTargetType. +const ( +	FieldOptions_TARGET_TYPE_UNKNOWN_enum_value         = 0 +	FieldOptions_TARGET_TYPE_FILE_enum_value            = 1 +	FieldOptions_TARGET_TYPE_EXTENSION_RANGE_enum_value = 2 +	FieldOptions_TARGET_TYPE_MESSAGE_enum_value         = 3 +	FieldOptions_TARGET_TYPE_FIELD_enum_value           = 4 +	FieldOptions_TARGET_TYPE_ONEOF_enum_value           = 5 +	FieldOptions_TARGET_TYPE_ENUM_enum_value            = 6 +	FieldOptions_TARGET_TYPE_ENUM_ENTRY_enum_value      = 7 +	FieldOptions_TARGET_TYPE_SERVICE_enum_value         = 8 +	FieldOptions_TARGET_TYPE_METHOD_enum_value          = 9 +) + +// Names for google.protobuf.FieldOptions.EditionDefault. +const ( +	FieldOptions_EditionDefault_message_name     protoreflect.Name     = "EditionDefault" +	FieldOptions_EditionDefault_message_fullname protoreflect.FullName = "google.protobuf.FieldOptions.EditionDefault" +) + +// Field names for google.protobuf.FieldOptions.EditionDefault. +const ( +	FieldOptions_EditionDefault_Edition_field_name protoreflect.Name = "edition" +	FieldOptions_EditionDefault_Value_field_name   protoreflect.Name = "value" + +	FieldOptions_EditionDefault_Edition_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.EditionDefault.edition" +	FieldOptions_EditionDefault_Value_field_fullname   protoreflect.FullName = "google.protobuf.FieldOptions.EditionDefault.value" +) + +// Field numbers for google.protobuf.FieldOptions.EditionDefault. +const ( +	FieldOptions_EditionDefault_Edition_field_number protoreflect.FieldNumber = 3 +	FieldOptions_EditionDefault_Value_field_number   protoreflect.FieldNumber = 2 +) +  // Names for google.protobuf.OneofOptions.  const (  	OneofOptions_message_name     protoreflect.Name     = "OneofOptions" @@ -650,13 +775,16 @@ const (  // Field names for google.protobuf.OneofOptions.  const ( +	OneofOptions_Features_field_name            protoreflect.Name = "features"  	OneofOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" +	OneofOptions_Features_field_fullname            protoreflect.FullName = "google.protobuf.OneofOptions.features"  	OneofOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.OneofOptions.uninterpreted_option"  )  // Field numbers for google.protobuf.OneofOptions.  const ( +	OneofOptions_Features_field_number            protoreflect.FieldNumber = 1  	OneofOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999  ) @@ -671,11 +799,13 @@ const (  	EnumOptions_AllowAlias_field_name                         protoreflect.Name = "allow_alias"  	EnumOptions_Deprecated_field_name                         protoreflect.Name = "deprecated"  	EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" +	EnumOptions_Features_field_name                           protoreflect.Name = "features"  	EnumOptions_UninterpretedOption_field_name                protoreflect.Name = "uninterpreted_option"  	EnumOptions_AllowAlias_field_fullname                         protoreflect.FullName = "google.protobuf.EnumOptions.allow_alias"  	EnumOptions_Deprecated_field_fullname                         protoreflect.FullName = "google.protobuf.EnumOptions.deprecated"  	EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated_legacy_json_field_conflicts" +	EnumOptions_Features_field_fullname                           protoreflect.FullName = "google.protobuf.EnumOptions.features"  	EnumOptions_UninterpretedOption_field_fullname                protoreflect.FullName = "google.protobuf.EnumOptions.uninterpreted_option"  ) @@ -684,6 +814,7 @@ const (  	EnumOptions_AllowAlias_field_number                         protoreflect.FieldNumber = 2  	EnumOptions_Deprecated_field_number                         protoreflect.FieldNumber = 3  	EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 6 +	EnumOptions_Features_field_number                           protoreflect.FieldNumber = 7  	EnumOptions_UninterpretedOption_field_number                protoreflect.FieldNumber = 999  ) @@ -696,15 +827,21 @@ const (  // Field names for google.protobuf.EnumValueOptions.  const (  	EnumValueOptions_Deprecated_field_name          protoreflect.Name = "deprecated" +	EnumValueOptions_Features_field_name            protoreflect.Name = "features" +	EnumValueOptions_DebugRedact_field_name         protoreflect.Name = "debug_redact"  	EnumValueOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option"  	EnumValueOptions_Deprecated_field_fullname          protoreflect.FullName = "google.protobuf.EnumValueOptions.deprecated" +	EnumValueOptions_Features_field_fullname            protoreflect.FullName = "google.protobuf.EnumValueOptions.features" +	EnumValueOptions_DebugRedact_field_fullname         protoreflect.FullName = "google.protobuf.EnumValueOptions.debug_redact"  	EnumValueOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.uninterpreted_option"  )  // Field numbers for google.protobuf.EnumValueOptions.  const (  	EnumValueOptions_Deprecated_field_number          protoreflect.FieldNumber = 1 +	EnumValueOptions_Features_field_number            protoreflect.FieldNumber = 2 +	EnumValueOptions_DebugRedact_field_number         protoreflect.FieldNumber = 3  	EnumValueOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999  ) @@ -716,15 +853,18 @@ const (  // Field names for google.protobuf.ServiceOptions.  const ( +	ServiceOptions_Features_field_name            protoreflect.Name = "features"  	ServiceOptions_Deprecated_field_name          protoreflect.Name = "deprecated"  	ServiceOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" +	ServiceOptions_Features_field_fullname            protoreflect.FullName = "google.protobuf.ServiceOptions.features"  	ServiceOptions_Deprecated_field_fullname          protoreflect.FullName = "google.protobuf.ServiceOptions.deprecated"  	ServiceOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.uninterpreted_option"  )  // Field numbers for google.protobuf.ServiceOptions.  const ( +	ServiceOptions_Features_field_number            protoreflect.FieldNumber = 34  	ServiceOptions_Deprecated_field_number          protoreflect.FieldNumber = 33  	ServiceOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999  ) @@ -739,10 +879,12 @@ const (  const (  	MethodOptions_Deprecated_field_name          protoreflect.Name = "deprecated"  	MethodOptions_IdempotencyLevel_field_name    protoreflect.Name = "idempotency_level" +	MethodOptions_Features_field_name            protoreflect.Name = "features"  	MethodOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option"  	MethodOptions_Deprecated_field_fullname          protoreflect.FullName = "google.protobuf.MethodOptions.deprecated"  	MethodOptions_IdempotencyLevel_field_fullname    protoreflect.FullName = "google.protobuf.MethodOptions.idempotency_level" +	MethodOptions_Features_field_fullname            protoreflect.FullName = "google.protobuf.MethodOptions.features"  	MethodOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.uninterpreted_option"  ) @@ -750,6 +892,7 @@ const (  const (  	MethodOptions_Deprecated_field_number          protoreflect.FieldNumber = 33  	MethodOptions_IdempotencyLevel_field_number    protoreflect.FieldNumber = 34 +	MethodOptions_Features_field_number            protoreflect.FieldNumber = 35  	MethodOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999  ) @@ -759,6 +902,13 @@ const (  	MethodOptions_IdempotencyLevel_enum_name     = "IdempotencyLevel"  ) +// Enum values for google.protobuf.MethodOptions.IdempotencyLevel. +const ( +	MethodOptions_IDEMPOTENCY_UNKNOWN_enum_value = 0 +	MethodOptions_NO_SIDE_EFFECTS_enum_value     = 1 +	MethodOptions_IDEMPOTENT_enum_value          = 2 +) +  // Names for google.protobuf.UninterpretedOption.  const (  	UninterpretedOption_message_name     protoreflect.Name     = "UninterpretedOption" @@ -816,6 +966,163 @@ const (  	UninterpretedOption_NamePart_IsExtension_field_number protoreflect.FieldNumber = 2  ) +// Names for google.protobuf.FeatureSet. +const ( +	FeatureSet_message_name     protoreflect.Name     = "FeatureSet" +	FeatureSet_message_fullname protoreflect.FullName = "google.protobuf.FeatureSet" +) + +// Field names for google.protobuf.FeatureSet. +const ( +	FeatureSet_FieldPresence_field_name         protoreflect.Name = "field_presence" +	FeatureSet_EnumType_field_name              protoreflect.Name = "enum_type" +	FeatureSet_RepeatedFieldEncoding_field_name protoreflect.Name = "repeated_field_encoding" +	FeatureSet_Utf8Validation_field_name        protoreflect.Name = "utf8_validation" +	FeatureSet_MessageEncoding_field_name       protoreflect.Name = "message_encoding" +	FeatureSet_JsonFormat_field_name            protoreflect.Name = "json_format" + +	FeatureSet_FieldPresence_field_fullname         protoreflect.FullName = "google.protobuf.FeatureSet.field_presence" +	FeatureSet_EnumType_field_fullname              protoreflect.FullName = "google.protobuf.FeatureSet.enum_type" +	FeatureSet_RepeatedFieldEncoding_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.repeated_field_encoding" +	FeatureSet_Utf8Validation_field_fullname        protoreflect.FullName = "google.protobuf.FeatureSet.utf8_validation" +	FeatureSet_MessageEncoding_field_fullname       protoreflect.FullName = "google.protobuf.FeatureSet.message_encoding" +	FeatureSet_JsonFormat_field_fullname            protoreflect.FullName = "google.protobuf.FeatureSet.json_format" +) + +// Field numbers for google.protobuf.FeatureSet. +const ( +	FeatureSet_FieldPresence_field_number         protoreflect.FieldNumber = 1 +	FeatureSet_EnumType_field_number              protoreflect.FieldNumber = 2 +	FeatureSet_RepeatedFieldEncoding_field_number protoreflect.FieldNumber = 3 +	FeatureSet_Utf8Validation_field_number        protoreflect.FieldNumber = 4 +	FeatureSet_MessageEncoding_field_number       protoreflect.FieldNumber = 5 +	FeatureSet_JsonFormat_field_number            protoreflect.FieldNumber = 6 +) + +// Full and short names for google.protobuf.FeatureSet.FieldPresence. +const ( +	FeatureSet_FieldPresence_enum_fullname = "google.protobuf.FeatureSet.FieldPresence" +	FeatureSet_FieldPresence_enum_name     = "FieldPresence" +) + +// Enum values for google.protobuf.FeatureSet.FieldPresence. +const ( +	FeatureSet_FIELD_PRESENCE_UNKNOWN_enum_value = 0 +	FeatureSet_EXPLICIT_enum_value               = 1 +	FeatureSet_IMPLICIT_enum_value               = 2 +	FeatureSet_LEGACY_REQUIRED_enum_value        = 3 +) + +// Full and short names for google.protobuf.FeatureSet.EnumType. +const ( +	FeatureSet_EnumType_enum_fullname = "google.protobuf.FeatureSet.EnumType" +	FeatureSet_EnumType_enum_name     = "EnumType" +) + +// Enum values for google.protobuf.FeatureSet.EnumType. +const ( +	FeatureSet_ENUM_TYPE_UNKNOWN_enum_value = 0 +	FeatureSet_OPEN_enum_value              = 1 +	FeatureSet_CLOSED_enum_value            = 2 +) + +// Full and short names for google.protobuf.FeatureSet.RepeatedFieldEncoding. +const ( +	FeatureSet_RepeatedFieldEncoding_enum_fullname = "google.protobuf.FeatureSet.RepeatedFieldEncoding" +	FeatureSet_RepeatedFieldEncoding_enum_name     = "RepeatedFieldEncoding" +) + +// Enum values for google.protobuf.FeatureSet.RepeatedFieldEncoding. +const ( +	FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN_enum_value = 0 +	FeatureSet_PACKED_enum_value                          = 1 +	FeatureSet_EXPANDED_enum_value                        = 2 +) + +// Full and short names for google.protobuf.FeatureSet.Utf8Validation. +const ( +	FeatureSet_Utf8Validation_enum_fullname = "google.protobuf.FeatureSet.Utf8Validation" +	FeatureSet_Utf8Validation_enum_name     = "Utf8Validation" +) + +// Enum values for google.protobuf.FeatureSet.Utf8Validation. +const ( +	FeatureSet_UTF8_VALIDATION_UNKNOWN_enum_value = 0 +	FeatureSet_VERIFY_enum_value                  = 2 +	FeatureSet_NONE_enum_value                    = 3 +) + +// Full and short names for google.protobuf.FeatureSet.MessageEncoding. +const ( +	FeatureSet_MessageEncoding_enum_fullname = "google.protobuf.FeatureSet.MessageEncoding" +	FeatureSet_MessageEncoding_enum_name     = "MessageEncoding" +) + +// Enum values for google.protobuf.FeatureSet.MessageEncoding. +const ( +	FeatureSet_MESSAGE_ENCODING_UNKNOWN_enum_value = 0 +	FeatureSet_LENGTH_PREFIXED_enum_value          = 1 +	FeatureSet_DELIMITED_enum_value                = 2 +) + +// Full and short names for google.protobuf.FeatureSet.JsonFormat. +const ( +	FeatureSet_JsonFormat_enum_fullname = "google.protobuf.FeatureSet.JsonFormat" +	FeatureSet_JsonFormat_enum_name     = "JsonFormat" +) + +// Enum values for google.protobuf.FeatureSet.JsonFormat. +const ( +	FeatureSet_JSON_FORMAT_UNKNOWN_enum_value = 0 +	FeatureSet_ALLOW_enum_value               = 1 +	FeatureSet_LEGACY_BEST_EFFORT_enum_value  = 2 +) + +// Names for google.protobuf.FeatureSetDefaults. +const ( +	FeatureSetDefaults_message_name     protoreflect.Name     = "FeatureSetDefaults" +	FeatureSetDefaults_message_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults" +) + +// Field names for google.protobuf.FeatureSetDefaults. +const ( +	FeatureSetDefaults_Defaults_field_name       protoreflect.Name = "defaults" +	FeatureSetDefaults_MinimumEdition_field_name protoreflect.Name = "minimum_edition" +	FeatureSetDefaults_MaximumEdition_field_name protoreflect.Name = "maximum_edition" + +	FeatureSetDefaults_Defaults_field_fullname       protoreflect.FullName = "google.protobuf.FeatureSetDefaults.defaults" +	FeatureSetDefaults_MinimumEdition_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.minimum_edition" +	FeatureSetDefaults_MaximumEdition_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.maximum_edition" +) + +// Field numbers for google.protobuf.FeatureSetDefaults. +const ( +	FeatureSetDefaults_Defaults_field_number       protoreflect.FieldNumber = 1 +	FeatureSetDefaults_MinimumEdition_field_number protoreflect.FieldNumber = 4 +	FeatureSetDefaults_MaximumEdition_field_number protoreflect.FieldNumber = 5 +) + +// Names for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. +const ( +	FeatureSetDefaults_FeatureSetEditionDefault_message_name     protoreflect.Name     = "FeatureSetEditionDefault" +	FeatureSetDefaults_FeatureSetEditionDefault_message_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault" +) + +// Field names for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. +const ( +	FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_name  protoreflect.Name = "edition" +	FeatureSetDefaults_FeatureSetEditionDefault_Features_field_name protoreflect.Name = "features" + +	FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_fullname  protoreflect.FullName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.edition" +	FeatureSetDefaults_FeatureSetEditionDefault_Features_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.features" +) + +// Field numbers for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. +const ( +	FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number  protoreflect.FieldNumber = 3 +	FeatureSetDefaults_FeatureSetEditionDefault_Features_field_number protoreflect.FieldNumber = 2 +) +  // Names for google.protobuf.SourceCodeInfo.  const (  	SourceCodeInfo_message_name     protoreflect.Name     = "SourceCodeInfo" @@ -917,3 +1224,10 @@ const (  	GeneratedCodeInfo_Annotation_Semantic_enum_fullname = "google.protobuf.GeneratedCodeInfo.Annotation.Semantic"  	GeneratedCodeInfo_Annotation_Semantic_enum_name     = "Semantic"  ) + +// Enum values for google.protobuf.GeneratedCodeInfo.Annotation.Semantic. +const ( +	GeneratedCodeInfo_Annotation_NONE_enum_value  = 0 +	GeneratedCodeInfo_Annotation_SET_enum_value   = 1 +	GeneratedCodeInfo_Annotation_ALIAS_enum_value = 2 +) diff --git a/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go b/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go new file mode 100644 index 000000000..fd9015e8e --- /dev/null +++ b/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go @@ -0,0 +1,31 @@ +// 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. + +// Code generated by generate-protos. DO NOT EDIT. + +package genid + +import ( +	protoreflect "google.golang.org/protobuf/reflect/protoreflect" +) + +const File_reflect_protodesc_proto_go_features_proto = "reflect/protodesc/proto/go_features.proto" + +// Names for google.protobuf.GoFeatures. +const ( +	GoFeatures_message_name     protoreflect.Name     = "GoFeatures" +	GoFeatures_message_fullname protoreflect.FullName = "google.protobuf.GoFeatures" +) + +// Field names for google.protobuf.GoFeatures. +const ( +	GoFeatures_LegacyUnmarshalJsonEnum_field_name protoreflect.Name = "legacy_unmarshal_json_enum" + +	GoFeatures_LegacyUnmarshalJsonEnum_field_fullname protoreflect.FullName = "google.protobuf.GoFeatures.legacy_unmarshal_json_enum" +) + +// Field numbers for google.protobuf.GoFeatures. +const ( +	GoFeatures_LegacyUnmarshalJsonEnum_field_number protoreflect.FieldNumber = 1 +) diff --git a/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go b/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go index 1a38944b2..ad6f80c46 100644 --- a/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +++ b/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go @@ -18,6 +18,11 @@ const (  	NullValue_enum_name     = "NullValue"  ) +// Enum values for google.protobuf.NullValue. +const ( +	NullValue_NULL_VALUE_enum_value = 0 +) +  // Names for google.protobuf.Struct.  const (  	Struct_message_name     protoreflect.Name     = "Struct" diff --git a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go index e0f75fea0..49bc73e25 100644 --- a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +++ b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go @@ -18,6 +18,13 @@ const (  	Syntax_enum_name     = "Syntax"  ) +// Enum values for google.protobuf.Syntax. +const ( +	Syntax_SYNTAX_PROTO2_enum_value   = 0 +	Syntax_SYNTAX_PROTO3_enum_value   = 1 +	Syntax_SYNTAX_EDITIONS_enum_value = 2 +) +  // Names for google.protobuf.Type.  const (  	Type_message_name     protoreflect.Name     = "Type" @@ -105,12 +112,43 @@ const (  	Field_Kind_enum_name     = "Kind"  ) +// Enum values for google.protobuf.Field.Kind. +const ( +	Field_TYPE_UNKNOWN_enum_value  = 0 +	Field_TYPE_DOUBLE_enum_value   = 1 +	Field_TYPE_FLOAT_enum_value    = 2 +	Field_TYPE_INT64_enum_value    = 3 +	Field_TYPE_UINT64_enum_value   = 4 +	Field_TYPE_INT32_enum_value    = 5 +	Field_TYPE_FIXED64_enum_value  = 6 +	Field_TYPE_FIXED32_enum_value  = 7 +	Field_TYPE_BOOL_enum_value     = 8 +	Field_TYPE_STRING_enum_value   = 9 +	Field_TYPE_GROUP_enum_value    = 10 +	Field_TYPE_MESSAGE_enum_value  = 11 +	Field_TYPE_BYTES_enum_value    = 12 +	Field_TYPE_UINT32_enum_value   = 13 +	Field_TYPE_ENUM_enum_value     = 14 +	Field_TYPE_SFIXED32_enum_value = 15 +	Field_TYPE_SFIXED64_enum_value = 16 +	Field_TYPE_SINT32_enum_value   = 17 +	Field_TYPE_SINT64_enum_value   = 18 +) +  // Full and short names for google.protobuf.Field.Cardinality.  const (  	Field_Cardinality_enum_fullname = "google.protobuf.Field.Cardinality"  	Field_Cardinality_enum_name     = "Cardinality"  ) +// Enum values for google.protobuf.Field.Cardinality. +const ( +	Field_CARDINALITY_UNKNOWN_enum_value  = 0 +	Field_CARDINALITY_OPTIONAL_enum_value = 1 +	Field_CARDINALITY_REQUIRED_enum_value = 2 +	Field_CARDINALITY_REPEATED_enum_value = 3 +) +  // Names for google.protobuf.Enum.  const (  	Enum_message_name     protoreflect.Name     = "Enum" diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go b/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go index e74cefdc5..2b8f122c2 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +++ b/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go @@ -21,26 +21,18 @@ type extensionFieldInfo struct {  	validation          validationInfo  } -var legacyExtensionFieldInfoCache sync.Map // map[protoreflect.ExtensionType]*extensionFieldInfo -  func getExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo {  	if xi, ok := xt.(*ExtensionInfo); ok {  		xi.lazyInit()  		return xi.info  	} -	return legacyLoadExtensionFieldInfo(xt) -} - -// legacyLoadExtensionFieldInfo dynamically loads a *ExtensionInfo for xt. -func legacyLoadExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo { -	if xi, ok := legacyExtensionFieldInfoCache.Load(xt); ok { -		return xi.(*extensionFieldInfo) -	} -	e := makeExtensionFieldInfo(xt.TypeDescriptor()) -	if e, ok := legacyMessageTypeCache.LoadOrStore(xt, e); ok { -		return e.(*extensionFieldInfo) -	} -	return e +	// Ideally we'd cache the resulting *extensionFieldInfo so we don't have to +	// recompute this metadata repeatedly. But without support for something like +	// weak references, such a cache would pin temporary values (like dynamic +	// extension types, constructed for the duration of a user request) to the +	// heap forever, causing memory usage of the cache to grow unbounded. +	// See discussion in https://github.com/golang/protobuf/issues/1521. +	return makeExtensionFieldInfo(xt.TypeDescriptor())  }  func makeExtensionFieldInfo(xd protoreflect.ExtensionDescriptor) *extensionFieldInfo { diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go b/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go index 1a509b63e..f55dc01e3 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +++ b/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go @@ -162,11 +162,20 @@ func appendBoolSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions  func consumeBoolSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {  	sp := p.BoolSlice()  	if wtyp == protowire.BytesType { -		s := *sp  		b, n := protowire.ConsumeBytes(b)  		if n < 0 {  			return out, errDecode  		} +		count := 0 +		for _, v := range b { +			if v < 0x80 { +				count++ +			} +		} +		if count > 0 { +			p.growBoolSlice(count) +		} +		s := *sp  		for len(b) > 0 {  			var v uint64  			var n int @@ -732,11 +741,20 @@ func appendInt32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOption  func consumeInt32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {  	sp := p.Int32Slice()  	if wtyp == protowire.BytesType { -		s := *sp  		b, n := protowire.ConsumeBytes(b)  		if n < 0 {  			return out, errDecode  		} +		count := 0 +		for _, v := range b { +			if v < 0x80 { +				count++ +			} +		} +		if count > 0 { +			p.growInt32Slice(count) +		} +		s := *sp  		for len(b) > 0 {  			var v uint64  			var n int @@ -1138,11 +1156,20 @@ func appendSint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio  func consumeSint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {  	sp := p.Int32Slice()  	if wtyp == protowire.BytesType { -		s := *sp  		b, n := protowire.ConsumeBytes(b)  		if n < 0 {  			return out, errDecode  		} +		count := 0 +		for _, v := range b { +			if v < 0x80 { +				count++ +			} +		} +		if count > 0 { +			p.growInt32Slice(count) +		} +		s := *sp  		for len(b) > 0 {  			var v uint64  			var n int @@ -1544,11 +1571,20 @@ func appendUint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio  func consumeUint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {  	sp := p.Uint32Slice()  	if wtyp == protowire.BytesType { -		s := *sp  		b, n := protowire.ConsumeBytes(b)  		if n < 0 {  			return out, errDecode  		} +		count := 0 +		for _, v := range b { +			if v < 0x80 { +				count++ +			} +		} +		if count > 0 { +			p.growUint32Slice(count) +		} +		s := *sp  		for len(b) > 0 {  			var v uint64  			var n int @@ -1950,11 +1986,20 @@ func appendInt64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOption  func consumeInt64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {  	sp := p.Int64Slice()  	if wtyp == protowire.BytesType { -		s := *sp  		b, n := protowire.ConsumeBytes(b)  		if n < 0 {  			return out, errDecode  		} +		count := 0 +		for _, v := range b { +			if v < 0x80 { +				count++ +			} +		} +		if count > 0 { +			p.growInt64Slice(count) +		} +		s := *sp  		for len(b) > 0 {  			var v uint64  			var n int @@ -2356,11 +2401,20 @@ func appendSint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio  func consumeSint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {  	sp := p.Int64Slice()  	if wtyp == protowire.BytesType { -		s := *sp  		b, n := protowire.ConsumeBytes(b)  		if n < 0 {  			return out, errDecode  		} +		count := 0 +		for _, v := range b { +			if v < 0x80 { +				count++ +			} +		} +		if count > 0 { +			p.growInt64Slice(count) +		} +		s := *sp  		for len(b) > 0 {  			var v uint64  			var n int @@ -2762,11 +2816,20 @@ func appendUint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio  func consumeUint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {  	sp := p.Uint64Slice()  	if wtyp == protowire.BytesType { -		s := *sp  		b, n := protowire.ConsumeBytes(b)  		if n < 0 {  			return out, errDecode  		} +		count := 0 +		for _, v := range b { +			if v < 0x80 { +				count++ +			} +		} +		if count > 0 { +			p.growUint64Slice(count) +		} +		s := *sp  		for len(b) > 0 {  			var v uint64  			var n int @@ -3145,11 +3208,15 @@ func appendSfixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpt  func consumeSfixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {  	sp := p.Int32Slice()  	if wtyp == protowire.BytesType { -		s := *sp  		b, n := protowire.ConsumeBytes(b)  		if n < 0 {  			return out, errDecode  		} +		count := len(b) / protowire.SizeFixed32() +		if count > 0 { +			p.growInt32Slice(count) +		} +		s := *sp  		for len(b) > 0 {  			v, n := protowire.ConsumeFixed32(b)  			if n < 0 { @@ -3461,11 +3528,15 @@ func appendFixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpti  func consumeFixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {  	sp := p.Uint32Slice()  	if wtyp == protowire.BytesType { -		s := *sp  		b, n := protowire.ConsumeBytes(b)  		if n < 0 {  			return out, errDecode  		} +		count := len(b) / protowire.SizeFixed32() +		if count > 0 { +			p.growUint32Slice(count) +		} +		s := *sp  		for len(b) > 0 {  			v, n := protowire.ConsumeFixed32(b)  			if n < 0 { @@ -3777,11 +3848,15 @@ func appendFloatSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOption  func consumeFloatSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {  	sp := p.Float32Slice()  	if wtyp == protowire.BytesType { -		s := *sp  		b, n := protowire.ConsumeBytes(b)  		if n < 0 {  			return out, errDecode  		} +		count := len(b) / protowire.SizeFixed32() +		if count > 0 { +			p.growFloat32Slice(count) +		} +		s := *sp  		for len(b) > 0 {  			v, n := protowire.ConsumeFixed32(b)  			if n < 0 { @@ -4093,11 +4168,15 @@ func appendSfixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpt  func consumeSfixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {  	sp := p.Int64Slice()  	if wtyp == protowire.BytesType { -		s := *sp  		b, n := protowire.ConsumeBytes(b)  		if n < 0 {  			return out, errDecode  		} +		count := len(b) / protowire.SizeFixed64() +		if count > 0 { +			p.growInt64Slice(count) +		} +		s := *sp  		for len(b) > 0 {  			v, n := protowire.ConsumeFixed64(b)  			if n < 0 { @@ -4409,11 +4488,15 @@ func appendFixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpti  func consumeFixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {  	sp := p.Uint64Slice()  	if wtyp == protowire.BytesType { -		s := *sp  		b, n := protowire.ConsumeBytes(b)  		if n < 0 {  			return out, errDecode  		} +		count := len(b) / protowire.SizeFixed64() +		if count > 0 { +			p.growUint64Slice(count) +		} +		s := *sp  		for len(b) > 0 {  			v, n := protowire.ConsumeFixed64(b)  			if n < 0 { @@ -4725,11 +4808,15 @@ func appendDoubleSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio  func consumeDoubleSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {  	sp := p.Float64Slice()  	if wtyp == protowire.BytesType { -		s := *sp  		b, n := protowire.ConsumeBytes(b)  		if n < 0 {  			return out, errDecode  		} +		count := len(b) / protowire.SizeFixed64() +		if count > 0 { +			p.growFloat64Slice(count) +		} +		s := *sp  		for len(b) > 0 {  			v, n := protowire.ConsumeFixed64(b)  			if n < 0 { diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go b/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go index 576dcf3aa..13077751e 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +++ b/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go @@ -197,7 +197,7 @@ func fieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) (*MessageInfo,  		return getMessageInfo(ft), makeMessageFieldCoder(fd, ft)  	case fd.Kind() == protoreflect.GroupKind:  		return getMessageInfo(ft), makeGroupFieldCoder(fd, ft) -	case fd.Syntax() == protoreflect.Proto3 && fd.ContainingOneof() == nil: +	case !fd.HasPresence() && fd.ContainingOneof() == nil:  		// Populated oneof fields always encode even if set to the zero value,  		// which normally are not encoded in proto3.  		switch fd.Kind() { diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go index 61c483fac..2ab2c6297 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go @@ -206,13 +206,18 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName  	// Obtain a list of oneof wrapper types.  	var oneofWrappers []reflect.Type -	for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} { -		if fn, ok := t.MethodByName(method); ok { -			for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -				if vs, ok := v.Interface().([]interface{}); ok { -					for _, v := range vs { -						oneofWrappers = append(oneofWrappers, reflect.TypeOf(v)) -					} +	methods := make([]reflect.Method, 0, 2) +	if m, ok := t.MethodByName("XXX_OneofFuncs"); ok { +		methods = append(methods, m) +	} +	if m, ok := t.MethodByName("XXX_OneofWrappers"); ok { +		methods = append(methods, m) +	} +	for _, fn := range methods { +		for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { +			if vs, ok := v.Interface().([]interface{}); ok { +				for _, v := range vs { +					oneofWrappers = append(oneofWrappers, reflect.TypeOf(v))  				}  			}  		} diff --git a/vendor/google.golang.org/protobuf/internal/impl/message.go b/vendor/google.golang.org/protobuf/internal/impl/message.go index 4f5fb67a0..629bacdce 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/message.go +++ b/vendor/google.golang.org/protobuf/internal/impl/message.go @@ -192,12 +192,17 @@ fieldLoop:  	// Derive a mapping of oneof wrappers to fields.  	oneofWrappers := mi.OneofWrappers -	for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} { -		if fn, ok := reflect.PtrTo(t).MethodByName(method); ok { -			for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -				if vs, ok := v.Interface().([]interface{}); ok { -					oneofWrappers = vs -				} +	methods := make([]reflect.Method, 0, 2) +	if m, ok := reflect.PtrTo(t).MethodByName("XXX_OneofFuncs"); ok { +		methods = append(methods, m) +	} +	if m, ok := reflect.PtrTo(t).MethodByName("XXX_OneofWrappers"); ok { +		methods = append(methods, m) +	} +	for _, fn := range methods { +		for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { +			if vs, ok := v.Interface().([]interface{}); ok { +				oneofWrappers = vs  			}  		}  	} diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go index 5e736c60e..986322b19 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +++ b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go @@ -538,6 +538,6 @@ func isZero(v reflect.Value) bool {  		}  		return true  	default: -		panic(&reflect.ValueError{"reflect.Value.IsZero", v.Kind()}) +		panic(&reflect.ValueError{Method: "reflect.Value.IsZero", Kind: v.Kind()})  	}  } diff --git a/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go b/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go index 4c491bdf4..517e94434 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +++ b/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go @@ -159,6 +159,42 @@ func (p pointer) SetPointer(v pointer) {  	p.v.Elem().Set(v.v)  } +func growSlice(p pointer, addCap int) { +	// TODO: Once we only support Go 1.20 and newer, use reflect.Grow. +	in := p.v.Elem() +	out := reflect.MakeSlice(in.Type(), in.Len(), in.Len()+addCap) +	reflect.Copy(out, in) +	p.v.Elem().Set(out) +} + +func (p pointer) growBoolSlice(addCap int) { +	growSlice(p, addCap) +} + +func (p pointer) growInt32Slice(addCap int) { +	growSlice(p, addCap) +} + +func (p pointer) growUint32Slice(addCap int) { +	growSlice(p, addCap) +} + +func (p pointer) growInt64Slice(addCap int) { +	growSlice(p, addCap) +} + +func (p pointer) growUint64Slice(addCap int) { +	growSlice(p, addCap) +} + +func (p pointer) growFloat64Slice(addCap int) { +	growSlice(p, addCap) +} + +func (p pointer) growFloat32Slice(addCap int) { +	growSlice(p, addCap) +} +  func (Export) MessageStateOf(p Pointer) *messageState     { panic("not supported") }  func (ms *messageState) pointer() pointer                 { panic("not supported") }  func (ms *messageState) messageInfo() *MessageInfo        { panic("not supported") } diff --git a/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go b/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go index ee0e0573e..4b020e311 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +++ b/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go @@ -138,6 +138,46 @@ func (p pointer) SetPointer(v pointer) {  	*(*unsafe.Pointer)(p.p) = (unsafe.Pointer)(v.p)  } +func (p pointer) growBoolSlice(addCap int) { +	sp := p.BoolSlice() +	s := make([]bool, 0, addCap+len(*sp)) +	s = s[:len(*sp)] +	copy(s, *sp) +	*sp = s +} + +func (p pointer) growInt32Slice(addCap int) { +	sp := p.Int32Slice() +	s := make([]int32, 0, addCap+len(*sp)) +	s = s[:len(*sp)] +	copy(s, *sp) +	*sp = s +} + +func (p pointer) growUint32Slice(addCap int) { +	p.growInt32Slice(addCap) +} + +func (p pointer) growFloat32Slice(addCap int) { +	p.growInt32Slice(addCap) +} + +func (p pointer) growInt64Slice(addCap int) { +	sp := p.Int64Slice() +	s := make([]int64, 0, addCap+len(*sp)) +	s = s[:len(*sp)] +	copy(s, *sp) +	*sp = s +} + +func (p pointer) growUint64Slice(addCap int) { +	p.growInt64Slice(addCap) +} + +func (p pointer) growFloat64Slice(addCap int) { +	p.growInt64Slice(addCap) +} +  // Static check that MessageState does not exceed the size of a pointer.  const _ = uint(unsafe.Sizeof(unsafe.Pointer(nil)) - unsafe.Sizeof(MessageState{})) diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings.go b/vendor/google.golang.org/protobuf/internal/strs/strings.go index 0b74e7658..a6e7df244 100644 --- a/vendor/google.golang.org/protobuf/internal/strs/strings.go +++ b/vendor/google.golang.org/protobuf/internal/strs/strings.go @@ -17,7 +17,7 @@ import (  // EnforceUTF8 reports whether to enforce strict UTF-8 validation.  func EnforceUTF8(fd protoreflect.FieldDescriptor) bool { -	if flags.ProtoLegacy { +	if flags.ProtoLegacy || fd.Syntax() == protoreflect.Editions {  		if fd, ok := fd.(interface{ EnforceUTF8() bool }); ok {  			return fd.EnforceUTF8()  		} diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go index 61a84d341..a008acd09 100644 --- a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +++ b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go @@ -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 strs diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go new file mode 100644 index 000000000..60166f2ba --- /dev/null +++ b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go @@ -0,0 +1,74 @@ +// 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 strs + +import ( +	"unsafe" + +	"google.golang.org/protobuf/reflect/protoreflect" +) + +// UnsafeString returns an unsafe string reference of b. +// The caller must treat the input slice as immutable. +// +// WARNING: Use carefully. The returned result must not leak to the end user +// unless the input slice is provably immutable. +func UnsafeString(b []byte) string { +	return unsafe.String(unsafe.SliceData(b), len(b)) +} + +// UnsafeBytes returns an unsafe bytes slice reference of s. +// The caller must treat returned slice as immutable. +// +// WARNING: Use carefully. The returned result must not leak to the end user. +func UnsafeBytes(s string) []byte { +	return unsafe.Slice(unsafe.StringData(s), len(s)) +} + +// Builder builds a set of strings with shared lifetime. +// This differs from strings.Builder, which is for building a single string. +type Builder struct { +	buf []byte +} + +// AppendFullName is equivalent to protoreflect.FullName.Append, +// but optimized for large batches where each name has a shared lifetime. +func (sb *Builder) AppendFullName(prefix protoreflect.FullName, name protoreflect.Name) protoreflect.FullName { +	n := len(prefix) + len(".") + len(name) +	if len(prefix) == 0 { +		n -= len(".") +	} +	sb.grow(n) +	sb.buf = append(sb.buf, prefix...) +	sb.buf = append(sb.buf, '.') +	sb.buf = append(sb.buf, name...) +	return protoreflect.FullName(sb.last(n)) +} + +// MakeString is equivalent to string(b), but optimized for large batches +// with a shared lifetime. +func (sb *Builder) MakeString(b []byte) string { +	sb.grow(len(b)) +	sb.buf = append(sb.buf, b...) +	return sb.last(len(b)) +} + +func (sb *Builder) grow(n int) { +	if cap(sb.buf)-len(sb.buf) >= n { +		return +	} + +	// Unlike strings.Builder, we do not need to copy over the contents +	// of the old buffer since our builder provides no API for +	// retrieving previously created strings. +	sb.buf = make([]byte, 0, 2*(cap(sb.buf)+n)) +} + +func (sb *Builder) last(n int) string { +	return UnsafeString(sb.buf[len(sb.buf)-n:]) +} diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go index 0999f29d5..a50fcfb49 100644 --- a/vendor/google.golang.org/protobuf/internal/version/version.go +++ b/vendor/google.golang.org/protobuf/internal/version/version.go @@ -51,7 +51,7 @@ import (  //  10. Send out the CL for review and submit it.  const (  	Major      = 1 -	Minor      = 31 +	Minor      = 33  	Patch      = 0  	PreRelease = ""  )  | 
