mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-05-29 01:56:41 +00:00
rebase: bump google.golang.org/protobuf from 1.36.4 to 1.36.5
Bumps google.golang.org/protobuf from 1.36.4 to 1.36.5. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
This commit is contained in:
parent
46bcbd6a2d
commit
b9d654975a
2
go.mod
2
go.mod
@ -31,7 +31,7 @@ require (
|
|||||||
golang.org/x/net v0.35.0
|
golang.org/x/net v0.35.0
|
||||||
golang.org/x/sys v0.30.0
|
golang.org/x/sys v0.30.0
|
||||||
google.golang.org/grpc v1.70.0
|
google.golang.org/grpc v1.70.0
|
||||||
google.golang.org/protobuf v1.36.4
|
google.golang.org/protobuf v1.36.5
|
||||||
//
|
//
|
||||||
// when updating k8s.io/kubernetes, make sure to update the replace section too
|
// when updating k8s.io/kubernetes, make sure to update the replace section too
|
||||||
//
|
//
|
||||||
|
4
go.sum
4
go.sum
@ -3495,8 +3495,8 @@ google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHh
|
|||||||
google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
||||||
google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
|
google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
|
||||||
google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
|
google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
|
||||||
google.golang.org/protobuf v1.36.4 h1:6A3ZDJHn/eNqc1i+IdefRzy/9PokBTPvcqMySR7NNIM=
|
google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
|
||||||
google.golang.org/protobuf v1.36.4/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
|
google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
|
||||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
5
vendor/google.golang.org/protobuf/encoding/protojson/decode.go
generated
vendored
5
vendor/google.golang.org/protobuf/encoding/protojson/decode.go
generated
vendored
@ -192,11 +192,6 @@ func (d decoder) unmarshalMessage(m protoreflect.Message, skipTypeURL bool) erro
|
|||||||
fd = fieldDescs.ByTextName(name)
|
fd = fieldDescs.ByTextName(name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if flags.ProtoLegacyWeak {
|
|
||||||
if fd != nil && fd.IsWeak() && fd.Message().IsPlaceholder() {
|
|
||||||
fd = nil // reset since the weak reference is not linked in
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if fd == nil {
|
if fd == nil {
|
||||||
// Field is unknown.
|
// Field is unknown.
|
||||||
|
5
vendor/google.golang.org/protobuf/encoding/prototext/decode.go
generated
vendored
5
vendor/google.golang.org/protobuf/encoding/prototext/decode.go
generated
vendored
@ -185,11 +185,6 @@ func (d decoder) unmarshalMessage(m protoreflect.Message, checkDelims bool) erro
|
|||||||
} else if xtErr != nil && xtErr != protoregistry.NotFound {
|
} else if xtErr != nil && xtErr != protoregistry.NotFound {
|
||||||
return d.newError(tok.Pos(), "unable to resolve [%s]: %v", tok.RawString(), xtErr)
|
return d.newError(tok.Pos(), "unable to resolve [%s]: %v", tok.RawString(), xtErr)
|
||||||
}
|
}
|
||||||
if flags.ProtoLegacyWeak {
|
|
||||||
if fd != nil && fd.IsWeak() && fd.Message().IsPlaceholder() {
|
|
||||||
fd = nil // reset since the weak reference is not linked in
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle unknown fields.
|
// Handle unknown fields.
|
||||||
if fd == nil {
|
if fd == nil {
|
||||||
|
8
vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go
generated
vendored
8
vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go
generated
vendored
@ -26,7 +26,7 @@ var byteType = reflect.TypeOf(byte(0))
|
|||||||
// The type is the underlying field type (e.g., a repeated field may be
|
// The type is the underlying field type (e.g., a repeated field may be
|
||||||
// represented by []T, but the Go type passed in is just T).
|
// represented by []T, but the Go type passed in is just T).
|
||||||
// A list of enum value descriptors must be provided for enum fields.
|
// A list of enum value descriptors must be provided for enum fields.
|
||||||
// This does not populate the Enum or Message (except for weak message).
|
// This does not populate the Enum or Message.
|
||||||
//
|
//
|
||||||
// This function is a best effort attempt; parsing errors are ignored.
|
// This function is a best effort attempt; parsing errors are ignored.
|
||||||
func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescriptors) protoreflect.FieldDescriptor {
|
func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescriptors) protoreflect.FieldDescriptor {
|
||||||
@ -109,9 +109,6 @@ func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescri
|
|||||||
}
|
}
|
||||||
case s == "packed":
|
case s == "packed":
|
||||||
f.L1.EditionFeatures.IsPacked = true
|
f.L1.EditionFeatures.IsPacked = true
|
||||||
case strings.HasPrefix(s, "weak="):
|
|
||||||
f.L1.IsWeak = true
|
|
||||||
f.L1.Message = filedesc.PlaceholderMessage(protoreflect.FullName(s[len("weak="):]))
|
|
||||||
case strings.HasPrefix(s, "def="):
|
case strings.HasPrefix(s, "def="):
|
||||||
// The default tag is special in that everything afterwards is the
|
// The default tag is special in that everything afterwards is the
|
||||||
// default regardless of the presence of commas.
|
// default regardless of the presence of commas.
|
||||||
@ -183,9 +180,6 @@ func Marshal(fd protoreflect.FieldDescriptor, enumName string) string {
|
|||||||
// the exact same semantics from the previous generator.
|
// the exact same semantics from the previous generator.
|
||||||
tag = append(tag, "json="+jsonName)
|
tag = append(tag, "json="+jsonName)
|
||||||
}
|
}
|
||||||
if fd.IsWeak() {
|
|
||||||
tag = append(tag, "weak="+string(fd.Message().FullName()))
|
|
||||||
}
|
|
||||||
// The previous implementation does not tag extension fields as proto3,
|
// The previous implementation does not tag extension fields as proto3,
|
||||||
// even when the field is defined in a proto3 file. Match that behavior
|
// even when the field is defined in a proto3 file. Match that behavior
|
||||||
// for consistency.
|
// for consistency.
|
||||||
|
9
vendor/google.golang.org/protobuf/internal/filedesc/desc.go
generated
vendored
9
vendor/google.golang.org/protobuf/internal/filedesc/desc.go
generated
vendored
@ -19,7 +19,6 @@ import (
|
|||||||
"google.golang.org/protobuf/internal/pragma"
|
"google.golang.org/protobuf/internal/pragma"
|
||||||
"google.golang.org/protobuf/internal/strs"
|
"google.golang.org/protobuf/internal/strs"
|
||||||
"google.golang.org/protobuf/reflect/protoreflect"
|
"google.golang.org/protobuf/reflect/protoreflect"
|
||||||
"google.golang.org/protobuf/reflect/protoregistry"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// Edition is an Enum for proto2.Edition
|
// Edition is an Enum for proto2.Edition
|
||||||
@ -275,7 +274,6 @@ type (
|
|||||||
Kind protoreflect.Kind
|
Kind protoreflect.Kind
|
||||||
StringName stringName
|
StringName stringName
|
||||||
IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto
|
IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto
|
||||||
IsWeak bool // promoted from google.protobuf.FieldOptions
|
|
||||||
IsLazy bool // promoted from google.protobuf.FieldOptions
|
IsLazy bool // promoted from google.protobuf.FieldOptions
|
||||||
Default defaultValue
|
Default defaultValue
|
||||||
ContainingOneof protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields
|
ContainingOneof protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields
|
||||||
@ -369,7 +367,7 @@ func (fd *Field) IsPacked() bool {
|
|||||||
return fd.L1.EditionFeatures.IsPacked
|
return fd.L1.EditionFeatures.IsPacked
|
||||||
}
|
}
|
||||||
func (fd *Field) IsExtension() bool { return false }
|
func (fd *Field) IsExtension() bool { return false }
|
||||||
func (fd *Field) IsWeak() bool { return fd.L1.IsWeak }
|
func (fd *Field) IsWeak() bool { return false }
|
||||||
func (fd *Field) IsLazy() bool { return fd.L1.IsLazy }
|
func (fd *Field) IsLazy() bool { return fd.L1.IsLazy }
|
||||||
func (fd *Field) IsList() bool { return fd.Cardinality() == protoreflect.Repeated && !fd.IsMap() }
|
func (fd *Field) IsList() bool { return fd.Cardinality() == protoreflect.Repeated && !fd.IsMap() }
|
||||||
func (fd *Field) IsMap() bool { return fd.Message() != nil && fd.Message().IsMapEntry() }
|
func (fd *Field) IsMap() bool { return fd.Message() != nil && fd.Message().IsMapEntry() }
|
||||||
@ -396,11 +394,6 @@ func (fd *Field) Enum() protoreflect.EnumDescriptor {
|
|||||||
return fd.L1.Enum
|
return fd.L1.Enum
|
||||||
}
|
}
|
||||||
func (fd *Field) Message() protoreflect.MessageDescriptor {
|
func (fd *Field) Message() protoreflect.MessageDescriptor {
|
||||||
if fd.L1.IsWeak {
|
|
||||||
if d, _ := protoregistry.GlobalFiles.FindDescriptorByName(fd.L1.Message.FullName()); d != nil {
|
|
||||||
return d.(protoreflect.MessageDescriptor)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return fd.L1.Message
|
return fd.L1.Message
|
||||||
}
|
}
|
||||||
func (fd *Field) IsMapEntry() bool {
|
func (fd *Field) IsMapEntry() bool {
|
||||||
|
9
vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go
generated
vendored
9
vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go
generated
vendored
@ -32,11 +32,6 @@ func (file *File) resolveMessages() {
|
|||||||
for j := range md.L2.Fields.List {
|
for j := range md.L2.Fields.List {
|
||||||
fd := &md.L2.Fields.List[j]
|
fd := &md.L2.Fields.List[j]
|
||||||
|
|
||||||
// Weak fields are resolved upon actual use.
|
|
||||||
if fd.L1.IsWeak {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
// Resolve message field dependency.
|
// Resolve message field dependency.
|
||||||
switch fd.L1.Kind {
|
switch fd.L1.Kind {
|
||||||
case protoreflect.EnumKind:
|
case protoreflect.EnumKind:
|
||||||
@ -150,8 +145,6 @@ func (fd *File) unmarshalFull(b []byte) {
|
|||||||
switch num {
|
switch num {
|
||||||
case genid.FileDescriptorProto_PublicDependency_field_number:
|
case genid.FileDescriptorProto_PublicDependency_field_number:
|
||||||
fd.L2.Imports[v].IsPublic = true
|
fd.L2.Imports[v].IsPublic = true
|
||||||
case genid.FileDescriptorProto_WeakDependency_field_number:
|
|
||||||
fd.L2.Imports[v].IsWeak = true
|
|
||||||
}
|
}
|
||||||
case protowire.BytesType:
|
case protowire.BytesType:
|
||||||
v, m := protowire.ConsumeBytes(b)
|
v, m := protowire.ConsumeBytes(b)
|
||||||
@ -502,8 +495,6 @@ func (fd *Field) unmarshalOptions(b []byte) {
|
|||||||
switch num {
|
switch num {
|
||||||
case genid.FieldOptions_Packed_field_number:
|
case genid.FieldOptions_Packed_field_number:
|
||||||
fd.L1.EditionFeatures.IsPacked = protowire.DecodeBool(v)
|
fd.L1.EditionFeatures.IsPacked = protowire.DecodeBool(v)
|
||||||
case genid.FieldOptions_Weak_field_number:
|
|
||||||
fd.L1.IsWeak = protowire.DecodeBool(v)
|
|
||||||
case genid.FieldOptions_Lazy_field_number:
|
case genid.FieldOptions_Lazy_field_number:
|
||||||
fd.L1.IsLazy = protowire.DecodeBool(v)
|
fd.L1.IsLazy = protowire.DecodeBool(v)
|
||||||
case FieldOptions_EnforceUTF8:
|
case FieldOptions_EnforceUTF8:
|
||||||
|
2
vendor/google.golang.org/protobuf/internal/filetype/build.go
generated
vendored
2
vendor/google.golang.org/protobuf/internal/filetype/build.go
generated
vendored
@ -63,7 +63,7 @@ type Builder struct {
|
|||||||
// message declarations in "flattened ordering".
|
// message declarations in "flattened ordering".
|
||||||
//
|
//
|
||||||
// Dependencies are Go types for enums or messages referenced by
|
// Dependencies are Go types for enums or messages referenced by
|
||||||
// message fields (excluding weak fields), for parent extended messages of
|
// message fields, for parent extended messages of
|
||||||
// extension fields, for enums or messages referenced by extension fields,
|
// extension fields, for enums or messages referenced by extension fields,
|
||||||
// and for input and output messages referenced by service methods.
|
// and for input and output messages referenced by service methods.
|
||||||
// Dependencies must come after declarations, but the ordering of
|
// Dependencies must come after declarations, but the ordering of
|
||||||
|
7
vendor/google.golang.org/protobuf/internal/flags/flags.go
generated
vendored
7
vendor/google.golang.org/protobuf/internal/flags/flags.go
generated
vendored
@ -6,7 +6,7 @@
|
|||||||
package flags
|
package flags
|
||||||
|
|
||||||
// ProtoLegacy specifies whether to enable support for legacy functionality
|
// ProtoLegacy specifies whether to enable support for legacy functionality
|
||||||
// such as MessageSets, weak fields, and various other obscure behavior
|
// such as MessageSets, and various other obscure behavior
|
||||||
// that is necessary to maintain backwards compatibility with proto1 or
|
// that is necessary to maintain backwards compatibility with proto1 or
|
||||||
// the pre-release variants of proto2 and proto3.
|
// the pre-release variants of proto2 and proto3.
|
||||||
//
|
//
|
||||||
@ -22,8 +22,3 @@ const ProtoLegacy = protoLegacy
|
|||||||
// extension fields at unmarshal time, but defers creating the message
|
// extension fields at unmarshal time, but defers creating the message
|
||||||
// structure until the extension is first accessed.
|
// structure until the extension is first accessed.
|
||||||
const LazyUnmarshalExtensions = ProtoLegacy
|
const LazyUnmarshalExtensions = ProtoLegacy
|
||||||
|
|
||||||
// ProtoLegacyWeak specifies whether to enable support for weak fields.
|
|
||||||
// This flag was split out of ProtoLegacy in preparation for removing
|
|
||||||
// support for weak fields (independent of the other protolegacy features).
|
|
||||||
const ProtoLegacyWeak = ProtoLegacy
|
|
||||||
|
5
vendor/google.golang.org/protobuf/internal/genid/goname.go
generated
vendored
5
vendor/google.golang.org/protobuf/internal/genid/goname.go
generated
vendored
@ -11,15 +11,10 @@ const (
|
|||||||
SizeCache_goname = "sizeCache"
|
SizeCache_goname = "sizeCache"
|
||||||
SizeCacheA_goname = "XXX_sizecache"
|
SizeCacheA_goname = "XXX_sizecache"
|
||||||
|
|
||||||
WeakFields_goname = "weakFields"
|
|
||||||
WeakFieldsA_goname = "XXX_weak"
|
|
||||||
|
|
||||||
UnknownFields_goname = "unknownFields"
|
UnknownFields_goname = "unknownFields"
|
||||||
UnknownFieldsA_goname = "XXX_unrecognized"
|
UnknownFieldsA_goname = "XXX_unrecognized"
|
||||||
|
|
||||||
ExtensionFields_goname = "extensionFields"
|
ExtensionFields_goname = "extensionFields"
|
||||||
ExtensionFieldsA_goname = "XXX_InternalExtensions"
|
ExtensionFieldsA_goname = "XXX_InternalExtensions"
|
||||||
ExtensionFieldsB_goname = "XXX_extensions"
|
ExtensionFieldsB_goname = "XXX_extensions"
|
||||||
|
|
||||||
WeakFieldPrefix_goname = "XXX_weak_"
|
|
||||||
)
|
)
|
||||||
|
75
vendor/google.golang.org/protobuf/internal/impl/codec_field.go
generated
vendored
75
vendor/google.golang.org/protobuf/internal/impl/codec_field.go
generated
vendored
@ -5,15 +5,12 @@
|
|||||||
package impl
|
package impl
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"reflect"
|
"reflect"
|
||||||
"sync"
|
|
||||||
|
|
||||||
"google.golang.org/protobuf/encoding/protowire"
|
"google.golang.org/protobuf/encoding/protowire"
|
||||||
"google.golang.org/protobuf/internal/errors"
|
"google.golang.org/protobuf/internal/errors"
|
||||||
"google.golang.org/protobuf/proto"
|
"google.golang.org/protobuf/proto"
|
||||||
"google.golang.org/protobuf/reflect/protoreflect"
|
"google.golang.org/protobuf/reflect/protoreflect"
|
||||||
"google.golang.org/protobuf/reflect/protoregistry"
|
|
||||||
"google.golang.org/protobuf/runtime/protoiface"
|
"google.golang.org/protobuf/runtime/protoiface"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -121,78 +118,6 @@ func (mi *MessageInfo) initOneofFieldCoders(od protoreflect.OneofDescriptor, si
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func makeWeakMessageFieldCoder(fd protoreflect.FieldDescriptor) pointerCoderFuncs {
|
|
||||||
var once sync.Once
|
|
||||||
var messageType protoreflect.MessageType
|
|
||||||
lazyInit := func() {
|
|
||||||
once.Do(func() {
|
|
||||||
messageName := fd.Message().FullName()
|
|
||||||
messageType, _ = protoregistry.GlobalTypes.FindMessageByName(messageName)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
return pointerCoderFuncs{
|
|
||||||
size: func(p pointer, f *coderFieldInfo, opts marshalOptions) int {
|
|
||||||
m, ok := p.WeakFields().get(f.num)
|
|
||||||
if !ok {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
lazyInit()
|
|
||||||
if messageType == nil {
|
|
||||||
panic(fmt.Sprintf("weak message %v is not linked in", fd.Message().FullName()))
|
|
||||||
}
|
|
||||||
return sizeMessage(m, f.tagsize, opts)
|
|
||||||
},
|
|
||||||
marshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {
|
|
||||||
m, ok := p.WeakFields().get(f.num)
|
|
||||||
if !ok {
|
|
||||||
return b, nil
|
|
||||||
}
|
|
||||||
lazyInit()
|
|
||||||
if messageType == nil {
|
|
||||||
panic(fmt.Sprintf("weak message %v is not linked in", fd.Message().FullName()))
|
|
||||||
}
|
|
||||||
return appendMessage(b, m, f.wiretag, opts)
|
|
||||||
},
|
|
||||||
unmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) {
|
|
||||||
fs := p.WeakFields()
|
|
||||||
m, ok := fs.get(f.num)
|
|
||||||
if !ok {
|
|
||||||
lazyInit()
|
|
||||||
if messageType == nil {
|
|
||||||
return unmarshalOutput{}, errUnknown
|
|
||||||
}
|
|
||||||
m = messageType.New().Interface()
|
|
||||||
fs.set(f.num, m)
|
|
||||||
}
|
|
||||||
return consumeMessage(b, m, wtyp, opts)
|
|
||||||
},
|
|
||||||
isInit: func(p pointer, f *coderFieldInfo) error {
|
|
||||||
m, ok := p.WeakFields().get(f.num)
|
|
||||||
if !ok {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return proto.CheckInitialized(m)
|
|
||||||
},
|
|
||||||
merge: func(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {
|
|
||||||
sm, ok := src.WeakFields().get(f.num)
|
|
||||||
if !ok {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
dm, ok := dst.WeakFields().get(f.num)
|
|
||||||
if !ok {
|
|
||||||
lazyInit()
|
|
||||||
if messageType == nil {
|
|
||||||
panic(fmt.Sprintf("weak message %v is not linked in", fd.Message().FullName()))
|
|
||||||
}
|
|
||||||
dm = messageType.New().Interface()
|
|
||||||
dst.WeakFields().set(f.num, dm)
|
|
||||||
}
|
|
||||||
opts.Merge(dm, sm)
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func makeMessageFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs {
|
func makeMessageFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs {
|
||||||
if mi := getMessageInfo(ft); mi != nil {
|
if mi := getMessageInfo(ft); mi != nil {
|
||||||
funcs := pointerCoderFuncs{
|
funcs := pointerCoderFuncs{
|
||||||
|
3
vendor/google.golang.org/protobuf/internal/impl/codec_message.go
generated
vendored
3
vendor/google.golang.org/protobuf/internal/impl/codec_message.go
generated
vendored
@ -119,9 +119,6 @@ func (mi *MessageInfo) makeCoderMethods(t reflect.Type, si structInfo) {
|
|||||||
}
|
}
|
||||||
case isOneof:
|
case isOneof:
|
||||||
fieldOffset = offsetOf(fs)
|
fieldOffset = offsetOf(fs)
|
||||||
case fd.IsWeak():
|
|
||||||
fieldOffset = si.weakOffset
|
|
||||||
funcs = makeWeakMessageFieldCoder(fd)
|
|
||||||
default:
|
default:
|
||||||
fieldOffset = offsetOf(fs)
|
fieldOffset = offsetOf(fs)
|
||||||
childMessage, funcs = fieldCoder(fd, ft)
|
childMessage, funcs = fieldCoder(fd, ft)
|
||||||
|
3
vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go
generated
vendored
3
vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go
generated
vendored
@ -46,9 +46,6 @@ func (mi *MessageInfo) makeOpaqueCoderMethods(t reflect.Type, si opaqueStructInf
|
|||||||
switch {
|
switch {
|
||||||
case fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic():
|
case fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic():
|
||||||
fieldOffset = offsetOf(fs)
|
fieldOffset = offsetOf(fs)
|
||||||
case fd.IsWeak():
|
|
||||||
fieldOffset = si.weakOffset
|
|
||||||
funcs = makeWeakMessageFieldCoder(fd)
|
|
||||||
case fd.Message() != nil && !fd.IsMap():
|
case fd.Message() != nil && !fd.IsMap():
|
||||||
fieldOffset = offsetOf(fs)
|
fieldOffset = offsetOf(fs)
|
||||||
if fd.IsList() {
|
if fd.IsList() {
|
||||||
|
2
vendor/google.golang.org/protobuf/internal/impl/lazy.go
generated
vendored
2
vendor/google.golang.org/protobuf/internal/impl/lazy.go
generated
vendored
@ -131,7 +131,7 @@ func (mi *MessageInfo) skipField(b []byte, f *coderFieldInfo, wtyp protowire.Typ
|
|||||||
fmi := f.validation.mi
|
fmi := f.validation.mi
|
||||||
if fmi == nil {
|
if fmi == nil {
|
||||||
fd := mi.Desc.Fields().ByNumber(f.num)
|
fd := mi.Desc.Fields().ByNumber(f.num)
|
||||||
if fd == nil || !fd.IsWeak() {
|
if fd == nil {
|
||||||
return out, ValidationUnknown
|
return out, ValidationUnknown
|
||||||
}
|
}
|
||||||
messageName := fd.Message().FullName()
|
messageName := fd.Message().FullName()
|
||||||
|
5
vendor/google.golang.org/protobuf/internal/impl/legacy_message.go
generated
vendored
5
vendor/google.golang.org/protobuf/internal/impl/legacy_message.go
generated
vendored
@ -310,12 +310,9 @@ func aberrantAppendField(md *filedesc.Message, goType reflect.Type, tag, tagKey,
|
|||||||
fd.L0.Parent = md
|
fd.L0.Parent = md
|
||||||
fd.L0.Index = n
|
fd.L0.Index = n
|
||||||
|
|
||||||
if fd.L1.IsWeak || fd.L1.EditionFeatures.IsPacked {
|
if fd.L1.EditionFeatures.IsPacked {
|
||||||
fd.L1.Options = func() protoreflect.ProtoMessage {
|
fd.L1.Options = func() protoreflect.ProtoMessage {
|
||||||
opts := descopts.Field.ProtoReflect().New()
|
opts := descopts.Field.ProtoReflect().New()
|
||||||
if fd.L1.IsWeak {
|
|
||||||
opts.Set(opts.Descriptor().Fields().ByName("weak"), protoreflect.ValueOfBool(true))
|
|
||||||
}
|
|
||||||
if fd.L1.EditionFeatures.IsPacked {
|
if fd.L1.EditionFeatures.IsPacked {
|
||||||
opts.Set(opts.Descriptor().Fields().ByName("packed"), protoreflect.ValueOfBool(fd.L1.EditionFeatures.IsPacked))
|
opts.Set(opts.Descriptor().Fields().ByName("packed"), protoreflect.ValueOfBool(fd.L1.EditionFeatures.IsPacked))
|
||||||
}
|
}
|
||||||
|
13
vendor/google.golang.org/protobuf/internal/impl/message.go
generated
vendored
13
vendor/google.golang.org/protobuf/internal/impl/message.go
generated
vendored
@ -14,7 +14,6 @@ import (
|
|||||||
|
|
||||||
"google.golang.org/protobuf/internal/genid"
|
"google.golang.org/protobuf/internal/genid"
|
||||||
"google.golang.org/protobuf/reflect/protoreflect"
|
"google.golang.org/protobuf/reflect/protoreflect"
|
||||||
"google.golang.org/protobuf/reflect/protoregistry"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// MessageInfo provides protobuf related functionality for a given Go type
|
// MessageInfo provides protobuf related functionality for a given Go type
|
||||||
@ -120,7 +119,6 @@ type (
|
|||||||
|
|
||||||
var (
|
var (
|
||||||
sizecacheType = reflect.TypeOf(SizeCache(0))
|
sizecacheType = reflect.TypeOf(SizeCache(0))
|
||||||
weakFieldsType = reflect.TypeOf(WeakFields(nil))
|
|
||||||
unknownFieldsAType = reflect.TypeOf(unknownFieldsA(nil))
|
unknownFieldsAType = reflect.TypeOf(unknownFieldsA(nil))
|
||||||
unknownFieldsBType = reflect.TypeOf(unknownFieldsB(nil))
|
unknownFieldsBType = reflect.TypeOf(unknownFieldsB(nil))
|
||||||
extensionFieldsType = reflect.TypeOf(ExtensionFields(nil))
|
extensionFieldsType = reflect.TypeOf(ExtensionFields(nil))
|
||||||
@ -129,8 +127,6 @@ var (
|
|||||||
type structInfo struct {
|
type structInfo struct {
|
||||||
sizecacheOffset offset
|
sizecacheOffset offset
|
||||||
sizecacheType reflect.Type
|
sizecacheType reflect.Type
|
||||||
weakOffset offset
|
|
||||||
weakType reflect.Type
|
|
||||||
unknownOffset offset
|
unknownOffset offset
|
||||||
unknownType reflect.Type
|
unknownType reflect.Type
|
||||||
extensionOffset offset
|
extensionOffset offset
|
||||||
@ -148,7 +144,6 @@ type structInfo struct {
|
|||||||
func (mi *MessageInfo) makeStructInfo(t reflect.Type) structInfo {
|
func (mi *MessageInfo) makeStructInfo(t reflect.Type) structInfo {
|
||||||
si := structInfo{
|
si := structInfo{
|
||||||
sizecacheOffset: invalidOffset,
|
sizecacheOffset: invalidOffset,
|
||||||
weakOffset: invalidOffset,
|
|
||||||
unknownOffset: invalidOffset,
|
unknownOffset: invalidOffset,
|
||||||
extensionOffset: invalidOffset,
|
extensionOffset: invalidOffset,
|
||||||
lazyOffset: invalidOffset,
|
lazyOffset: invalidOffset,
|
||||||
@ -168,11 +163,6 @@ fieldLoop:
|
|||||||
si.sizecacheOffset = offsetOf(f)
|
si.sizecacheOffset = offsetOf(f)
|
||||||
si.sizecacheType = f.Type
|
si.sizecacheType = f.Type
|
||||||
}
|
}
|
||||||
case genid.WeakFields_goname, genid.WeakFieldsA_goname:
|
|
||||||
if f.Type == weakFieldsType {
|
|
||||||
si.weakOffset = offsetOf(f)
|
|
||||||
si.weakType = f.Type
|
|
||||||
}
|
|
||||||
case genid.UnknownFields_goname, genid.UnknownFieldsA_goname:
|
case genid.UnknownFields_goname, genid.UnknownFieldsA_goname:
|
||||||
if f.Type == unknownFieldsAType || f.Type == unknownFieldsBType {
|
if f.Type == unknownFieldsAType || f.Type == unknownFieldsBType {
|
||||||
si.unknownOffset = offsetOf(f)
|
si.unknownOffset = offsetOf(f)
|
||||||
@ -256,9 +246,6 @@ func (mi *MessageInfo) Message(i int) protoreflect.MessageType {
|
|||||||
mi.init()
|
mi.init()
|
||||||
fd := mi.Desc.Fields().Get(i)
|
fd := mi.Desc.Fields().Get(i)
|
||||||
switch {
|
switch {
|
||||||
case fd.IsWeak():
|
|
||||||
mt, _ := protoregistry.GlobalTypes.FindMessageByName(fd.Message().FullName())
|
|
||||||
return mt
|
|
||||||
case fd.IsMap():
|
case fd.IsMap():
|
||||||
return mapEntryType{fd.Message(), mi.fieldTypes[fd.Number()]}
|
return mapEntryType{fd.Message(), mi.fieldTypes[fd.Number()]}
|
||||||
default:
|
default:
|
||||||
|
5
vendor/google.golang.org/protobuf/internal/impl/message_opaque.go
generated
vendored
5
vendor/google.golang.org/protobuf/internal/impl/message_opaque.go
generated
vendored
@ -56,9 +56,6 @@ func opaqueInitHook(mi *MessageInfo) bool {
|
|||||||
usePresence, _ := usePresenceForField(si, fd)
|
usePresence, _ := usePresenceForField(si, fd)
|
||||||
|
|
||||||
switch {
|
switch {
|
||||||
case fd.IsWeak():
|
|
||||||
// Weak fields are no different for opaque.
|
|
||||||
fi = fieldInfoForWeakMessage(fd, si.weakOffset)
|
|
||||||
case fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic():
|
case fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic():
|
||||||
// Oneofs are no different for opaque.
|
// Oneofs are no different for opaque.
|
||||||
fi = fieldInfoForOneof(fd, si.oneofsByName[fd.ContainingOneof().Name()], mi.Exporter, si.oneofWrappersByNumber[fd.Number()])
|
fi = fieldInfoForOneof(fd, si.oneofsByName[fd.ContainingOneof().Name()], mi.Exporter, si.oneofWrappersByNumber[fd.Number()])
|
||||||
@ -620,8 +617,6 @@ func usePresenceForField(si opaqueStructInfo, fd protoreflect.FieldDescriptor) (
|
|||||||
switch {
|
switch {
|
||||||
case fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic():
|
case fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic():
|
||||||
return false, false
|
return false, false
|
||||||
case fd.IsWeak():
|
|
||||||
return false, false
|
|
||||||
case fd.IsMap():
|
case fd.IsMap():
|
||||||
return false, false
|
return false, false
|
||||||
case fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind:
|
case fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind:
|
||||||
|
5
vendor/google.golang.org/protobuf/internal/impl/message_reflect.go
generated
vendored
5
vendor/google.golang.org/protobuf/internal/impl/message_reflect.go
generated
vendored
@ -72,8 +72,6 @@ func (mi *MessageInfo) makeKnownFieldsFunc(si structInfo) {
|
|||||||
fi = fieldInfoForMap(fd, fs, mi.Exporter)
|
fi = fieldInfoForMap(fd, fs, mi.Exporter)
|
||||||
case fd.IsList():
|
case fd.IsList():
|
||||||
fi = fieldInfoForList(fd, fs, mi.Exporter)
|
fi = fieldInfoForList(fd, fs, mi.Exporter)
|
||||||
case fd.IsWeak():
|
|
||||||
fi = fieldInfoForWeakMessage(fd, si.weakOffset)
|
|
||||||
case fd.Message() != nil:
|
case fd.Message() != nil:
|
||||||
fi = fieldInfoForMessage(fd, fs, mi.Exporter)
|
fi = fieldInfoForMessage(fd, fs, mi.Exporter)
|
||||||
default:
|
default:
|
||||||
@ -219,9 +217,6 @@ func (mi *MessageInfo) makeFieldTypes(si structInfo) {
|
|||||||
}
|
}
|
||||||
case fd.Message() != nil:
|
case fd.Message() != nil:
|
||||||
ft = fs.Type
|
ft = fs.Type
|
||||||
if fd.IsWeak() {
|
|
||||||
ft = nil
|
|
||||||
}
|
|
||||||
isMessage = true
|
isMessage = true
|
||||||
}
|
}
|
||||||
if isMessage && ft != nil && ft.Kind() != reflect.Ptr {
|
if isMessage && ft != nil && ft.Kind() != reflect.Ptr {
|
||||||
|
76
vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go
generated
vendored
76
vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go
generated
vendored
@ -8,11 +8,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"math"
|
"math"
|
||||||
"reflect"
|
"reflect"
|
||||||
"sync"
|
|
||||||
|
|
||||||
"google.golang.org/protobuf/internal/flags"
|
|
||||||
"google.golang.org/protobuf/reflect/protoreflect"
|
"google.golang.org/protobuf/reflect/protoreflect"
|
||||||
"google.golang.org/protobuf/reflect/protoregistry"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type fieldInfo struct {
|
type fieldInfo struct {
|
||||||
@ -332,79 +329,6 @@ func fieldInfoForScalar(fd protoreflect.FieldDescriptor, fs reflect.StructField,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func fieldInfoForWeakMessage(fd protoreflect.FieldDescriptor, weakOffset offset) fieldInfo {
|
|
||||||
if !flags.ProtoLegacyWeak {
|
|
||||||
panic("no support for proto1 weak fields")
|
|
||||||
}
|
|
||||||
|
|
||||||
var once sync.Once
|
|
||||||
var messageType protoreflect.MessageType
|
|
||||||
lazyInit := func() {
|
|
||||||
once.Do(func() {
|
|
||||||
messageName := fd.Message().FullName()
|
|
||||||
messageType, _ = protoregistry.GlobalTypes.FindMessageByName(messageName)
|
|
||||||
if messageType == nil {
|
|
||||||
panic(fmt.Sprintf("weak message %v for field %v is not linked in", messageName, fd.FullName()))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
num := fd.Number()
|
|
||||||
return fieldInfo{
|
|
||||||
fieldDesc: fd,
|
|
||||||
has: func(p pointer) bool {
|
|
||||||
if p.IsNil() {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
_, ok := p.Apply(weakOffset).WeakFields().get(num)
|
|
||||||
return ok
|
|
||||||
},
|
|
||||||
clear: func(p pointer) {
|
|
||||||
p.Apply(weakOffset).WeakFields().clear(num)
|
|
||||||
},
|
|
||||||
get: func(p pointer) protoreflect.Value {
|
|
||||||
lazyInit()
|
|
||||||
if p.IsNil() {
|
|
||||||
return protoreflect.ValueOfMessage(messageType.Zero())
|
|
||||||
}
|
|
||||||
m, ok := p.Apply(weakOffset).WeakFields().get(num)
|
|
||||||
if !ok {
|
|
||||||
return protoreflect.ValueOfMessage(messageType.Zero())
|
|
||||||
}
|
|
||||||
return protoreflect.ValueOfMessage(m.ProtoReflect())
|
|
||||||
},
|
|
||||||
set: func(p pointer, v protoreflect.Value) {
|
|
||||||
lazyInit()
|
|
||||||
m := v.Message()
|
|
||||||
if m.Descriptor() != messageType.Descriptor() {
|
|
||||||
if got, want := m.Descriptor().FullName(), messageType.Descriptor().FullName(); got != want {
|
|
||||||
panic(fmt.Sprintf("field %v has mismatching message descriptor: got %v, want %v", fd.FullName(), got, want))
|
|
||||||
}
|
|
||||||
panic(fmt.Sprintf("field %v has mismatching message descriptor: %v", fd.FullName(), m.Descriptor().FullName()))
|
|
||||||
}
|
|
||||||
p.Apply(weakOffset).WeakFields().set(num, m.Interface())
|
|
||||||
},
|
|
||||||
mutable: func(p pointer) protoreflect.Value {
|
|
||||||
lazyInit()
|
|
||||||
fs := p.Apply(weakOffset).WeakFields()
|
|
||||||
m, ok := fs.get(num)
|
|
||||||
if !ok {
|
|
||||||
m = messageType.New().Interface()
|
|
||||||
fs.set(num, m)
|
|
||||||
}
|
|
||||||
return protoreflect.ValueOfMessage(m.ProtoReflect())
|
|
||||||
},
|
|
||||||
newMessage: func() protoreflect.Message {
|
|
||||||
lazyInit()
|
|
||||||
return messageType.New()
|
|
||||||
},
|
|
||||||
newField: func() protoreflect.Value {
|
|
||||||
lazyInit()
|
|
||||||
return protoreflect.ValueOfMessage(messageType.New())
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func fieldInfoForMessage(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo {
|
func fieldInfoForMessage(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo {
|
||||||
ft := fs.Type
|
ft := fs.Type
|
||||||
conv := NewConverter(ft, fd)
|
conv := NewConverter(ft, fd)
|
||||||
|
1
vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go
generated
vendored
1
vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go
generated
vendored
@ -111,7 +111,6 @@ func (p pointer) StringSlice() *[]string { return (*[]string)(p.p
|
|||||||
func (p pointer) Bytes() *[]byte { return (*[]byte)(p.p) }
|
func (p pointer) Bytes() *[]byte { return (*[]byte)(p.p) }
|
||||||
func (p pointer) BytesPtr() **[]byte { return (**[]byte)(p.p) }
|
func (p pointer) BytesPtr() **[]byte { return (**[]byte)(p.p) }
|
||||||
func (p pointer) BytesSlice() *[][]byte { return (*[][]byte)(p.p) }
|
func (p pointer) BytesSlice() *[][]byte { return (*[][]byte)(p.p) }
|
||||||
func (p pointer) WeakFields() *weakFields { return (*weakFields)(p.p) }
|
|
||||||
func (p pointer) Extensions() *map[int32]ExtensionField { return (*map[int32]ExtensionField)(p.p) }
|
func (p pointer) Extensions() *map[int32]ExtensionField { return (*map[int32]ExtensionField)(p.p) }
|
||||||
func (p pointer) LazyInfoPtr() **protolazy.XXX_lazyUnmarshalInfo {
|
func (p pointer) LazyInfoPtr() **protolazy.XXX_lazyUnmarshalInfo {
|
||||||
return (**protolazy.XXX_lazyUnmarshalInfo)(p.p)
|
return (**protolazy.XXX_lazyUnmarshalInfo)(p.p)
|
||||||
|
24
vendor/google.golang.org/protobuf/internal/impl/validate.go
generated
vendored
24
vendor/google.golang.org/protobuf/internal/impl/validate.go
generated
vendored
@ -211,9 +211,7 @@ func newValidationInfo(fd protoreflect.FieldDescriptor, ft reflect.Type) validat
|
|||||||
switch fd.Kind() {
|
switch fd.Kind() {
|
||||||
case protoreflect.MessageKind:
|
case protoreflect.MessageKind:
|
||||||
vi.typ = validationTypeMessage
|
vi.typ = validationTypeMessage
|
||||||
if !fd.IsWeak() {
|
vi.mi = getMessageInfo(ft)
|
||||||
vi.mi = getMessageInfo(ft)
|
|
||||||
}
|
|
||||||
case protoreflect.GroupKind:
|
case protoreflect.GroupKind:
|
||||||
vi.typ = validationTypeGroup
|
vi.typ = validationTypeGroup
|
||||||
vi.mi = getMessageInfo(ft)
|
vi.mi = getMessageInfo(ft)
|
||||||
@ -320,26 +318,6 @@ State:
|
|||||||
}
|
}
|
||||||
if f != nil {
|
if f != nil {
|
||||||
vi = f.validation
|
vi = f.validation
|
||||||
if vi.typ == validationTypeMessage && vi.mi == nil {
|
|
||||||
// Probable weak field.
|
|
||||||
//
|
|
||||||
// TODO: Consider storing the results of this lookup somewhere
|
|
||||||
// rather than recomputing it on every validation.
|
|
||||||
fd := st.mi.Desc.Fields().ByNumber(num)
|
|
||||||
if fd == nil || !fd.IsWeak() {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
messageName := fd.Message().FullName()
|
|
||||||
messageType, err := protoregistry.GlobalTypes.FindMessageByName(messageName)
|
|
||||||
switch err {
|
|
||||||
case nil:
|
|
||||||
vi.mi, _ = messageType.(*MessageInfo)
|
|
||||||
case protoregistry.NotFound:
|
|
||||||
vi.typ = validationTypeBytes
|
|
||||||
default:
|
|
||||||
return out, ValidationUnknown
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
// Possible extension field.
|
// Possible extension field.
|
||||||
|
74
vendor/google.golang.org/protobuf/internal/impl/weak.go
generated
vendored
74
vendor/google.golang.org/protobuf/internal/impl/weak.go
generated
vendored
@ -1,74 +0,0 @@
|
|||||||
// Copyright 2019 The Go Authors. All rights reserved.
|
|
||||||
// Use of this source code is governed by a BSD-style
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
package impl
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"google.golang.org/protobuf/reflect/protoreflect"
|
|
||||||
"google.golang.org/protobuf/reflect/protoregistry"
|
|
||||||
)
|
|
||||||
|
|
||||||
// weakFields adds methods to the exported WeakFields type for internal use.
|
|
||||||
//
|
|
||||||
// The exported type is an alias to an unnamed type, so methods can't be
|
|
||||||
// defined directly on it.
|
|
||||||
type weakFields WeakFields
|
|
||||||
|
|
||||||
func (w weakFields) get(num protoreflect.FieldNumber) (protoreflect.ProtoMessage, bool) {
|
|
||||||
m, ok := w[int32(num)]
|
|
||||||
return m, ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (w *weakFields) set(num protoreflect.FieldNumber, m protoreflect.ProtoMessage) {
|
|
||||||
if *w == nil {
|
|
||||||
*w = make(weakFields)
|
|
||||||
}
|
|
||||||
(*w)[int32(num)] = m
|
|
||||||
}
|
|
||||||
|
|
||||||
func (w *weakFields) clear(num protoreflect.FieldNumber) {
|
|
||||||
delete(*w, int32(num))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (Export) HasWeak(w WeakFields, num protoreflect.FieldNumber) bool {
|
|
||||||
_, ok := w[int32(num)]
|
|
||||||
return ok
|
|
||||||
}
|
|
||||||
|
|
||||||
func (Export) ClearWeak(w *WeakFields, num protoreflect.FieldNumber) {
|
|
||||||
delete(*w, int32(num))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (Export) GetWeak(w WeakFields, num protoreflect.FieldNumber, name protoreflect.FullName) protoreflect.ProtoMessage {
|
|
||||||
if m, ok := w[int32(num)]; ok {
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
mt, _ := protoregistry.GlobalTypes.FindMessageByName(name)
|
|
||||||
if mt == nil {
|
|
||||||
panic(fmt.Sprintf("message %v for weak field is not linked in", name))
|
|
||||||
}
|
|
||||||
return mt.Zero().Interface()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (Export) SetWeak(w *WeakFields, num protoreflect.FieldNumber, name protoreflect.FullName, m protoreflect.ProtoMessage) {
|
|
||||||
if m != nil {
|
|
||||||
mt, _ := protoregistry.GlobalTypes.FindMessageByName(name)
|
|
||||||
if mt == nil {
|
|
||||||
panic(fmt.Sprintf("message %v for weak field is not linked in", name))
|
|
||||||
}
|
|
||||||
if mt != m.ProtoReflect().Type() {
|
|
||||||
panic(fmt.Sprintf("invalid message type for weak field: got %T, want %T", m, mt.Zero().Interface()))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if m == nil || !m.ProtoReflect().IsValid() {
|
|
||||||
delete(*w, int32(num))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if *w == nil {
|
|
||||||
*w = make(weakFields)
|
|
||||||
}
|
|
||||||
(*w)[int32(num)] = m
|
|
||||||
}
|
|
2
vendor/google.golang.org/protobuf/internal/version/version.go
generated
vendored
2
vendor/google.golang.org/protobuf/internal/version/version.go
generated
vendored
@ -52,7 +52,7 @@ import (
|
|||||||
const (
|
const (
|
||||||
Major = 1
|
Major = 1
|
||||||
Minor = 36
|
Minor = 36
|
||||||
Patch = 4
|
Patch = 5
|
||||||
PreRelease = ""
|
PreRelease = ""
|
||||||
)
|
)
|
||||||
|
|
||||||
|
5
vendor/google.golang.org/protobuf/proto/decode.go
generated
vendored
5
vendor/google.golang.org/protobuf/proto/decode.go
generated
vendored
@ -8,7 +8,6 @@ import (
|
|||||||
"google.golang.org/protobuf/encoding/protowire"
|
"google.golang.org/protobuf/encoding/protowire"
|
||||||
"google.golang.org/protobuf/internal/encoding/messageset"
|
"google.golang.org/protobuf/internal/encoding/messageset"
|
||||||
"google.golang.org/protobuf/internal/errors"
|
"google.golang.org/protobuf/internal/errors"
|
||||||
"google.golang.org/protobuf/internal/flags"
|
|
||||||
"google.golang.org/protobuf/internal/genid"
|
"google.golang.org/protobuf/internal/genid"
|
||||||
"google.golang.org/protobuf/internal/pragma"
|
"google.golang.org/protobuf/internal/pragma"
|
||||||
"google.golang.org/protobuf/reflect/protoreflect"
|
"google.golang.org/protobuf/reflect/protoreflect"
|
||||||
@ -172,10 +171,6 @@ func (o UnmarshalOptions) unmarshalMessageSlow(b []byte, m protoreflect.Message)
|
|||||||
var err error
|
var err error
|
||||||
if fd == nil {
|
if fd == nil {
|
||||||
err = errUnknown
|
err = errUnknown
|
||||||
} else if flags.ProtoLegacyWeak {
|
|
||||||
if fd.IsWeak() && fd.Message().IsPlaceholder() {
|
|
||||||
err = errUnknown // weak referent is not linked in
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse the field value.
|
// Parse the field value.
|
||||||
|
8
vendor/google.golang.org/protobuf/reflect/protodesc/desc.go
generated
vendored
8
vendor/google.golang.org/protobuf/reflect/protodesc/desc.go
generated
vendored
@ -132,17 +132,11 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot
|
|||||||
}
|
}
|
||||||
f.L2.Imports[i].IsPublic = true
|
f.L2.Imports[i].IsPublic = true
|
||||||
}
|
}
|
||||||
for _, i := range fd.GetWeakDependency() {
|
|
||||||
if !(0 <= i && int(i) < len(f.L2.Imports)) || f.L2.Imports[i].IsWeak {
|
|
||||||
return nil, errors.New("invalid or duplicate weak import index: %d", i)
|
|
||||||
}
|
|
||||||
f.L2.Imports[i].IsWeak = true
|
|
||||||
}
|
|
||||||
imps := importSet{f.Path(): true}
|
imps := importSet{f.Path(): true}
|
||||||
for i, path := range fd.GetDependency() {
|
for i, path := range fd.GetDependency() {
|
||||||
imp := &f.L2.Imports[i]
|
imp := &f.L2.Imports[i]
|
||||||
f, err := r.FindFileByPath(path)
|
f, err := r.FindFileByPath(path)
|
||||||
if err == protoregistry.NotFound && (o.AllowUnresolvable || imp.IsWeak) {
|
if err == protoregistry.NotFound && o.AllowUnresolvable {
|
||||||
f = filedesc.PlaceholderFile(path)
|
f = filedesc.PlaceholderFile(path)
|
||||||
} else if err != nil {
|
} else if err != nil {
|
||||||
return nil, errors.New("could not resolve import %q: %v", path, err)
|
return nil, errors.New("could not resolve import %q: %v", path, err)
|
||||||
|
1
vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go
generated
vendored
1
vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go
generated
vendored
@ -149,7 +149,6 @@ func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDesc
|
|||||||
if opts := fd.GetOptions(); opts != nil {
|
if opts := fd.GetOptions(); opts != nil {
|
||||||
opts = proto.Clone(opts).(*descriptorpb.FieldOptions)
|
opts = proto.Clone(opts).(*descriptorpb.FieldOptions)
|
||||||
f.L1.Options = func() protoreflect.ProtoMessage { return opts }
|
f.L1.Options = func() protoreflect.ProtoMessage { return opts }
|
||||||
f.L1.IsWeak = opts.GetWeak()
|
|
||||||
f.L1.IsLazy = opts.GetLazy()
|
f.L1.IsLazy = opts.GetLazy()
|
||||||
if opts.Packed != nil {
|
if opts.Packed != nil {
|
||||||
f.L1.EditionFeatures.IsPacked = opts.GetPacked()
|
f.L1.EditionFeatures.IsPacked = opts.GetPacked()
|
||||||
|
26
vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go
generated
vendored
26
vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go
generated
vendored
@ -43,7 +43,7 @@ func (r *resolver) resolveMessageDependencies(ms []filedesc.Message, mds []*desc
|
|||||||
o.L1.Fields.List = append(o.L1.Fields.List, f)
|
o.L1.Fields.List = append(o.L1.Fields.List, f)
|
||||||
}
|
}
|
||||||
|
|
||||||
if f.L1.Kind, f.L1.Enum, f.L1.Message, err = r.findTarget(f.Kind(), f.Parent().FullName(), partialName(fd.GetTypeName()), f.IsWeak()); err != nil {
|
if f.L1.Kind, f.L1.Enum, f.L1.Message, err = r.findTarget(f.Kind(), f.Parent().FullName(), partialName(fd.GetTypeName())); err != nil {
|
||||||
return errors.New("message field %q cannot resolve type: %v", f.FullName(), err)
|
return errors.New("message field %q cannot resolve type: %v", f.FullName(), err)
|
||||||
}
|
}
|
||||||
if f.L1.Kind == protoreflect.GroupKind && (f.IsMap() || f.IsMapEntry()) {
|
if f.L1.Kind == protoreflect.GroupKind && (f.IsMap() || f.IsMapEntry()) {
|
||||||
@ -73,10 +73,10 @@ func (r *resolver) resolveMessageDependencies(ms []filedesc.Message, mds []*desc
|
|||||||
func (r *resolver) resolveExtensionDependencies(xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) (err error) {
|
func (r *resolver) resolveExtensionDependencies(xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) (err error) {
|
||||||
for i, xd := range xds {
|
for i, xd := range xds {
|
||||||
x := &xs[i]
|
x := &xs[i]
|
||||||
if x.L1.Extendee, err = r.findMessageDescriptor(x.Parent().FullName(), partialName(xd.GetExtendee()), false); err != nil {
|
if x.L1.Extendee, err = r.findMessageDescriptor(x.Parent().FullName(), partialName(xd.GetExtendee())); err != nil {
|
||||||
return errors.New("extension field %q cannot resolve extendee: %v", x.FullName(), err)
|
return errors.New("extension field %q cannot resolve extendee: %v", x.FullName(), err)
|
||||||
}
|
}
|
||||||
if x.L1.Kind, x.L2.Enum, x.L2.Message, err = r.findTarget(x.Kind(), x.Parent().FullName(), partialName(xd.GetTypeName()), false); err != nil {
|
if x.L1.Kind, x.L2.Enum, x.L2.Message, err = r.findTarget(x.Kind(), x.Parent().FullName(), partialName(xd.GetTypeName())); err != nil {
|
||||||
return errors.New("extension field %q cannot resolve type: %v", x.FullName(), err)
|
return errors.New("extension field %q cannot resolve type: %v", x.FullName(), err)
|
||||||
}
|
}
|
||||||
if xd.DefaultValue != nil {
|
if xd.DefaultValue != nil {
|
||||||
@ -95,11 +95,11 @@ func (r *resolver) resolveServiceDependencies(ss []filedesc.Service, sds []*desc
|
|||||||
s := &ss[i]
|
s := &ss[i]
|
||||||
for j, md := range sd.GetMethod() {
|
for j, md := range sd.GetMethod() {
|
||||||
m := &s.L2.Methods.List[j]
|
m := &s.L2.Methods.List[j]
|
||||||
m.L1.Input, err = r.findMessageDescriptor(m.Parent().FullName(), partialName(md.GetInputType()), false)
|
m.L1.Input, err = r.findMessageDescriptor(m.Parent().FullName(), partialName(md.GetInputType()))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.New("service method %q cannot resolve input: %v", m.FullName(), err)
|
return errors.New("service method %q cannot resolve input: %v", m.FullName(), err)
|
||||||
}
|
}
|
||||||
m.L1.Output, err = r.findMessageDescriptor(s.FullName(), partialName(md.GetOutputType()), false)
|
m.L1.Output, err = r.findMessageDescriptor(s.FullName(), partialName(md.GetOutputType()))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.New("service method %q cannot resolve output: %v", m.FullName(), err)
|
return errors.New("service method %q cannot resolve output: %v", m.FullName(), err)
|
||||||
}
|
}
|
||||||
@ -111,16 +111,16 @@ func (r *resolver) resolveServiceDependencies(ss []filedesc.Service, sds []*desc
|
|||||||
// findTarget finds an enum or message descriptor if k is an enum, message,
|
// findTarget finds an enum or message descriptor if k is an enum, message,
|
||||||
// group, or unknown. If unknown, and the name could be resolved, the kind
|
// group, or unknown. If unknown, and the name could be resolved, the kind
|
||||||
// returned kind is set based on the type of the resolved descriptor.
|
// returned kind is set based on the type of the resolved descriptor.
|
||||||
func (r *resolver) findTarget(k protoreflect.Kind, scope protoreflect.FullName, ref partialName, isWeak bool) (protoreflect.Kind, protoreflect.EnumDescriptor, protoreflect.MessageDescriptor, error) {
|
func (r *resolver) findTarget(k protoreflect.Kind, scope protoreflect.FullName, ref partialName) (protoreflect.Kind, protoreflect.EnumDescriptor, protoreflect.MessageDescriptor, error) {
|
||||||
switch k {
|
switch k {
|
||||||
case protoreflect.EnumKind:
|
case protoreflect.EnumKind:
|
||||||
ed, err := r.findEnumDescriptor(scope, ref, isWeak)
|
ed, err := r.findEnumDescriptor(scope, ref)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, nil, nil, err
|
return 0, nil, nil, err
|
||||||
}
|
}
|
||||||
return k, ed, nil, nil
|
return k, ed, nil, nil
|
||||||
case protoreflect.MessageKind, protoreflect.GroupKind:
|
case protoreflect.MessageKind, protoreflect.GroupKind:
|
||||||
md, err := r.findMessageDescriptor(scope, ref, isWeak)
|
md, err := r.findMessageDescriptor(scope, ref)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, nil, nil, err
|
return 0, nil, nil, err
|
||||||
}
|
}
|
||||||
@ -129,7 +129,7 @@ func (r *resolver) findTarget(k protoreflect.Kind, scope protoreflect.FullName,
|
|||||||
// Handle unspecified kinds (possible with parsers that operate
|
// Handle unspecified kinds (possible with parsers that operate
|
||||||
// on a per-file basis without knowledge of dependencies).
|
// on a per-file basis without knowledge of dependencies).
|
||||||
d, err := r.findDescriptor(scope, ref)
|
d, err := r.findDescriptor(scope, ref)
|
||||||
if err == protoregistry.NotFound && (r.allowUnresolvable || isWeak) {
|
if err == protoregistry.NotFound && r.allowUnresolvable {
|
||||||
return k, filedesc.PlaceholderEnum(ref.FullName()), filedesc.PlaceholderMessage(ref.FullName()), nil
|
return k, filedesc.PlaceholderEnum(ref.FullName()), filedesc.PlaceholderMessage(ref.FullName()), nil
|
||||||
} else if err == protoregistry.NotFound {
|
} else if err == protoregistry.NotFound {
|
||||||
return 0, nil, nil, errors.New("%q not found", ref.FullName())
|
return 0, nil, nil, errors.New("%q not found", ref.FullName())
|
||||||
@ -206,9 +206,9 @@ func (r *resolver) findDescriptor(scope protoreflect.FullName, ref partialName)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *resolver) findEnumDescriptor(scope protoreflect.FullName, ref partialName, isWeak bool) (protoreflect.EnumDescriptor, error) {
|
func (r *resolver) findEnumDescriptor(scope protoreflect.FullName, ref partialName) (protoreflect.EnumDescriptor, error) {
|
||||||
d, err := r.findDescriptor(scope, ref)
|
d, err := r.findDescriptor(scope, ref)
|
||||||
if err == protoregistry.NotFound && (r.allowUnresolvable || isWeak) {
|
if err == protoregistry.NotFound && r.allowUnresolvable {
|
||||||
return filedesc.PlaceholderEnum(ref.FullName()), nil
|
return filedesc.PlaceholderEnum(ref.FullName()), nil
|
||||||
} else if err == protoregistry.NotFound {
|
} else if err == protoregistry.NotFound {
|
||||||
return nil, errors.New("%q not found", ref.FullName())
|
return nil, errors.New("%q not found", ref.FullName())
|
||||||
@ -222,9 +222,9 @@ func (r *resolver) findEnumDescriptor(scope protoreflect.FullName, ref partialNa
|
|||||||
return ed, nil
|
return ed, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *resolver) findMessageDescriptor(scope protoreflect.FullName, ref partialName, isWeak bool) (protoreflect.MessageDescriptor, error) {
|
func (r *resolver) findMessageDescriptor(scope protoreflect.FullName, ref partialName) (protoreflect.MessageDescriptor, error) {
|
||||||
d, err := r.findDescriptor(scope, ref)
|
d, err := r.findDescriptor(scope, ref)
|
||||||
if err == protoregistry.NotFound && (r.allowUnresolvable || isWeak) {
|
if err == protoregistry.NotFound && r.allowUnresolvable {
|
||||||
return filedesc.PlaceholderMessage(ref.FullName()), nil
|
return filedesc.PlaceholderMessage(ref.FullName()), nil
|
||||||
} else if err == protoregistry.NotFound {
|
} else if err == protoregistry.NotFound {
|
||||||
return nil, errors.New("%q not found", ref.FullName())
|
return nil, errors.New("%q not found", ref.FullName())
|
||||||
|
12
vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go
generated
vendored
12
vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go
generated
vendored
@ -149,12 +149,6 @@ func validateMessageDeclarations(file *filedesc.File, ms []filedesc.Message, mds
|
|||||||
return errors.New("message field %q under proto3 optional semantics must be within a single element oneof", f.FullName())
|
return errors.New("message field %q under proto3 optional semantics must be within a single element oneof", f.FullName())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if f.IsWeak() && !flags.ProtoLegacyWeak {
|
|
||||||
return errors.New("message field %q is a weak field, which is a legacy proto1 feature that is no longer supported", f.FullName())
|
|
||||||
}
|
|
||||||
if f.IsWeak() && (!f.HasPresence() || !isOptionalMessage(f) || f.ContainingOneof() != nil) {
|
|
||||||
return errors.New("message field %q may only be weak for an optional message", f.FullName())
|
|
||||||
}
|
|
||||||
if f.IsPacked() && !isPackable(f) {
|
if f.IsPacked() && !isPackable(f) {
|
||||||
return errors.New("message field %q is not packable", f.FullName())
|
return errors.New("message field %q is not packable", f.FullName())
|
||||||
}
|
}
|
||||||
@ -199,9 +193,6 @@ func validateMessageDeclarations(file *filedesc.File, ms []filedesc.Message, mds
|
|||||||
if f.Cardinality() != protoreflect.Optional {
|
if f.Cardinality() != protoreflect.Optional {
|
||||||
return errors.New("message field %q belongs in a oneof and must be optional", f.FullName())
|
return errors.New("message field %q belongs in a oneof and must be optional", f.FullName())
|
||||||
}
|
}
|
||||||
if f.IsWeak() {
|
|
||||||
return errors.New("message field %q belongs in a oneof and must not be a weak reference", f.FullName())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -254,9 +245,6 @@ func validateExtensionDeclarations(f *filedesc.File, xs []filedesc.Extension, xd
|
|||||||
return errors.New("extension field %q has an invalid number: %d", x.FullName(), x.Number())
|
return errors.New("extension field %q has an invalid number: %d", x.FullName(), x.Number())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if xd.GetOptions().GetWeak() {
|
|
||||||
return errors.New("extension field %q cannot be a weak reference", x.FullName())
|
|
||||||
}
|
|
||||||
if x.IsPacked() && !isPackable(x) {
|
if x.IsPacked() && !isPackable(x) {
|
||||||
return errors.New("extension field %q is not packable", x.FullName())
|
return errors.New("extension field %q is not packable", x.FullName())
|
||||||
}
|
}
|
||||||
|
3
vendor/google.golang.org/protobuf/reflect/protodesc/proto.go
generated
vendored
3
vendor/google.golang.org/protobuf/reflect/protodesc/proto.go
generated
vendored
@ -32,9 +32,6 @@ func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileD
|
|||||||
if imp.IsPublic {
|
if imp.IsPublic {
|
||||||
p.PublicDependency = append(p.PublicDependency, int32(i))
|
p.PublicDependency = append(p.PublicDependency, int32(i))
|
||||||
}
|
}
|
||||||
if imp.IsWeak {
|
|
||||||
p.WeakDependency = append(p.WeakDependency, int32(i))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
for i, locs := 0, file.SourceLocations(); i < locs.Len(); i++ {
|
for i, locs := 0, file.SourceLocations(); i < locs.Len(); i++ {
|
||||||
loc := locs.Get(i)
|
loc := locs.Get(i)
|
||||||
|
12
vendor/google.golang.org/protobuf/reflect/protoreflect/type.go
generated
vendored
12
vendor/google.golang.org/protobuf/reflect/protoreflect/type.go
generated
vendored
@ -68,7 +68,7 @@ type Descriptor interface {
|
|||||||
// dependency is not resolved, in which case only name information is known.
|
// dependency is not resolved, in which case only name information is known.
|
||||||
//
|
//
|
||||||
// Placeholder types may only be returned by the following accessors
|
// Placeholder types may only be returned by the following accessors
|
||||||
// as a result of unresolved dependencies or weak imports:
|
// as a result of unresolved dependencies:
|
||||||
//
|
//
|
||||||
// ╔═══════════════════════════════════╤═════════════════════╗
|
// ╔═══════════════════════════════════╤═════════════════════╗
|
||||||
// ║ Accessor │ Descriptor ║
|
// ║ Accessor │ Descriptor ║
|
||||||
@ -168,11 +168,7 @@ type FileImport struct {
|
|||||||
// The current file and the imported file must be within proto package.
|
// The current file and the imported file must be within proto package.
|
||||||
IsPublic bool
|
IsPublic bool
|
||||||
|
|
||||||
// IsWeak reports whether this is a weak import, which does not impose
|
// Deprecated: support for weak fields has been removed.
|
||||||
// a direct dependency on the target file.
|
|
||||||
//
|
|
||||||
// Weak imports are a legacy proto1 feature. Equivalent behavior is
|
|
||||||
// achieved using proto2 extension fields or proto3 Any messages.
|
|
||||||
IsWeak bool
|
IsWeak bool
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -325,9 +321,7 @@ type FieldDescriptor interface {
|
|||||||
// specified in the source .proto file.
|
// specified in the source .proto file.
|
||||||
HasOptionalKeyword() bool
|
HasOptionalKeyword() bool
|
||||||
|
|
||||||
// IsWeak reports whether this is a weak field, which does not impose a
|
// Deprecated: support for weak fields has been removed.
|
||||||
// direct dependency on the target type.
|
|
||||||
// If true, then Message returns a placeholder type.
|
|
||||||
IsWeak() bool
|
IsWeak() bool
|
||||||
|
|
||||||
// IsPacked reports whether repeated primitive numeric kinds should be
|
// IsPacked reports whether repeated primitive numeric kinds should be
|
||||||
|
2
vendor/modules.txt
vendored
2
vendor/modules.txt
vendored
@ -1006,7 +1006,7 @@ google.golang.org/grpc/serviceconfig
|
|||||||
google.golang.org/grpc/stats
|
google.golang.org/grpc/stats
|
||||||
google.golang.org/grpc/status
|
google.golang.org/grpc/status
|
||||||
google.golang.org/grpc/tap
|
google.golang.org/grpc/tap
|
||||||
# google.golang.org/protobuf v1.36.4
|
# google.golang.org/protobuf v1.36.5
|
||||||
## explicit; go 1.21
|
## explicit; go 1.21
|
||||||
google.golang.org/protobuf/encoding/protodelim
|
google.golang.org/protobuf/encoding/protodelim
|
||||||
google.golang.org/protobuf/encoding/protojson
|
google.golang.org/protobuf/encoding/protojson
|
||||||
|
Loading…
x
Reference in New Issue
Block a user