feat: implement copilot drive mode
This commit is contained in:
		
							
								
								
									
										116
									
								
								vendor/google.golang.org/protobuf/encoding/prototext/decode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										116
									
								
								vendor/google.golang.org/protobuf/encoding/prototext/decode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -17,7 +17,7 @@ import (
 | 
			
		||||
	"google.golang.org/protobuf/internal/set"
 | 
			
		||||
	"google.golang.org/protobuf/internal/strs"
 | 
			
		||||
	"google.golang.org/protobuf/proto"
 | 
			
		||||
	pref "google.golang.org/protobuf/reflect/protoreflect"
 | 
			
		||||
	"google.golang.org/protobuf/reflect/protoreflect"
 | 
			
		||||
	"google.golang.org/protobuf/reflect/protoregistry"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -103,7 +103,7 @@ func (d decoder) syntaxError(pos int, f string, x ...interface{}) error {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// unmarshalMessage unmarshals into the given protoreflect.Message.
 | 
			
		||||
func (d decoder) unmarshalMessage(m pref.Message, checkDelims bool) error {
 | 
			
		||||
func (d decoder) unmarshalMessage(m protoreflect.Message, checkDelims bool) error {
 | 
			
		||||
	messageDesc := m.Descriptor()
 | 
			
		||||
	if !flags.ProtoLegacy && messageset.IsMessageSet(messageDesc) {
 | 
			
		||||
		return errors.New("no support for proto1 MessageSets")
 | 
			
		||||
@@ -150,24 +150,24 @@ func (d decoder) unmarshalMessage(m pref.Message, checkDelims bool) error {
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Resolve the field descriptor.
 | 
			
		||||
		var name pref.Name
 | 
			
		||||
		var fd pref.FieldDescriptor
 | 
			
		||||
		var xt pref.ExtensionType
 | 
			
		||||
		var name protoreflect.Name
 | 
			
		||||
		var fd protoreflect.FieldDescriptor
 | 
			
		||||
		var xt protoreflect.ExtensionType
 | 
			
		||||
		var xtErr error
 | 
			
		||||
		var isFieldNumberName bool
 | 
			
		||||
 | 
			
		||||
		switch tok.NameKind() {
 | 
			
		||||
		case text.IdentName:
 | 
			
		||||
			name = pref.Name(tok.IdentName())
 | 
			
		||||
			name = protoreflect.Name(tok.IdentName())
 | 
			
		||||
			fd = fieldDescs.ByTextName(string(name))
 | 
			
		||||
 | 
			
		||||
		case text.TypeName:
 | 
			
		||||
			// Handle extensions only. This code path is not for Any.
 | 
			
		||||
			xt, xtErr = d.opts.Resolver.FindExtensionByName(pref.FullName(tok.TypeName()))
 | 
			
		||||
			xt, xtErr = d.opts.Resolver.FindExtensionByName(protoreflect.FullName(tok.TypeName()))
 | 
			
		||||
 | 
			
		||||
		case text.FieldNumber:
 | 
			
		||||
			isFieldNumberName = true
 | 
			
		||||
			num := pref.FieldNumber(tok.FieldNumber())
 | 
			
		||||
			num := protoreflect.FieldNumber(tok.FieldNumber())
 | 
			
		||||
			if !num.IsValid() {
 | 
			
		||||
				return d.newError(tok.Pos(), "invalid field number: %d", num)
 | 
			
		||||
			}
 | 
			
		||||
@@ -215,7 +215,7 @@ func (d decoder) unmarshalMessage(m pref.Message, checkDelims bool) error {
 | 
			
		||||
		switch {
 | 
			
		||||
		case fd.IsList():
 | 
			
		||||
			kind := fd.Kind()
 | 
			
		||||
			if kind != pref.MessageKind && kind != pref.GroupKind && !tok.HasSeparator() {
 | 
			
		||||
			if kind != protoreflect.MessageKind && kind != protoreflect.GroupKind && !tok.HasSeparator() {
 | 
			
		||||
				return d.syntaxError(tok.Pos(), "missing field separator :")
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
@@ -232,7 +232,7 @@ func (d decoder) unmarshalMessage(m pref.Message, checkDelims bool) error {
 | 
			
		||||
 | 
			
		||||
		default:
 | 
			
		||||
			kind := fd.Kind()
 | 
			
		||||
			if kind != pref.MessageKind && kind != pref.GroupKind && !tok.HasSeparator() {
 | 
			
		||||
			if kind != protoreflect.MessageKind && kind != protoreflect.GroupKind && !tok.HasSeparator() {
 | 
			
		||||
				return d.syntaxError(tok.Pos(), "missing field separator :")
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
@@ -262,11 +262,11 @@ func (d decoder) unmarshalMessage(m pref.Message, checkDelims bool) error {
 | 
			
		||||
 | 
			
		||||
// unmarshalSingular unmarshals a non-repeated field value specified by the
 | 
			
		||||
// given FieldDescriptor.
 | 
			
		||||
func (d decoder) unmarshalSingular(fd pref.FieldDescriptor, m pref.Message) error {
 | 
			
		||||
	var val pref.Value
 | 
			
		||||
func (d decoder) unmarshalSingular(fd protoreflect.FieldDescriptor, m protoreflect.Message) error {
 | 
			
		||||
	var val protoreflect.Value
 | 
			
		||||
	var err error
 | 
			
		||||
	switch fd.Kind() {
 | 
			
		||||
	case pref.MessageKind, pref.GroupKind:
 | 
			
		||||
	case protoreflect.MessageKind, protoreflect.GroupKind:
 | 
			
		||||
		val = m.NewField(fd)
 | 
			
		||||
		err = d.unmarshalMessage(val.Message(), true)
 | 
			
		||||
	default:
 | 
			
		||||
@@ -280,94 +280,94 @@ func (d decoder) unmarshalSingular(fd pref.FieldDescriptor, m pref.Message) erro
 | 
			
		||||
 | 
			
		||||
// unmarshalScalar unmarshals a scalar/enum protoreflect.Value specified by the
 | 
			
		||||
// given FieldDescriptor.
 | 
			
		||||
func (d decoder) unmarshalScalar(fd pref.FieldDescriptor) (pref.Value, error) {
 | 
			
		||||
func (d decoder) unmarshalScalar(fd protoreflect.FieldDescriptor) (protoreflect.Value, error) {
 | 
			
		||||
	tok, err := d.Read()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return pref.Value{}, err
 | 
			
		||||
		return protoreflect.Value{}, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if tok.Kind() != text.Scalar {
 | 
			
		||||
		return pref.Value{}, d.unexpectedTokenError(tok)
 | 
			
		||||
		return protoreflect.Value{}, d.unexpectedTokenError(tok)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	kind := fd.Kind()
 | 
			
		||||
	switch kind {
 | 
			
		||||
	case pref.BoolKind:
 | 
			
		||||
	case protoreflect.BoolKind:
 | 
			
		||||
		if b, ok := tok.Bool(); ok {
 | 
			
		||||
			return pref.ValueOfBool(b), nil
 | 
			
		||||
			return protoreflect.ValueOfBool(b), nil
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind:
 | 
			
		||||
	case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:
 | 
			
		||||
		if n, ok := tok.Int32(); ok {
 | 
			
		||||
			return pref.ValueOfInt32(n), nil
 | 
			
		||||
			return protoreflect.ValueOfInt32(n), nil
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind:
 | 
			
		||||
	case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:
 | 
			
		||||
		if n, ok := tok.Int64(); ok {
 | 
			
		||||
			return pref.ValueOfInt64(n), nil
 | 
			
		||||
			return protoreflect.ValueOfInt64(n), nil
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	case pref.Uint32Kind, pref.Fixed32Kind:
 | 
			
		||||
	case protoreflect.Uint32Kind, protoreflect.Fixed32Kind:
 | 
			
		||||
		if n, ok := tok.Uint32(); ok {
 | 
			
		||||
			return pref.ValueOfUint32(n), nil
 | 
			
		||||
			return protoreflect.ValueOfUint32(n), nil
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	case pref.Uint64Kind, pref.Fixed64Kind:
 | 
			
		||||
	case protoreflect.Uint64Kind, protoreflect.Fixed64Kind:
 | 
			
		||||
		if n, ok := tok.Uint64(); ok {
 | 
			
		||||
			return pref.ValueOfUint64(n), nil
 | 
			
		||||
			return protoreflect.ValueOfUint64(n), nil
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	case pref.FloatKind:
 | 
			
		||||
	case protoreflect.FloatKind:
 | 
			
		||||
		if n, ok := tok.Float32(); ok {
 | 
			
		||||
			return pref.ValueOfFloat32(n), nil
 | 
			
		||||
			return protoreflect.ValueOfFloat32(n), nil
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	case pref.DoubleKind:
 | 
			
		||||
	case protoreflect.DoubleKind:
 | 
			
		||||
		if n, ok := tok.Float64(); ok {
 | 
			
		||||
			return pref.ValueOfFloat64(n), nil
 | 
			
		||||
			return protoreflect.ValueOfFloat64(n), nil
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	case pref.StringKind:
 | 
			
		||||
	case protoreflect.StringKind:
 | 
			
		||||
		if s, ok := tok.String(); ok {
 | 
			
		||||
			if strs.EnforceUTF8(fd) && !utf8.ValidString(s) {
 | 
			
		||||
				return pref.Value{}, d.newError(tok.Pos(), "contains invalid UTF-8")
 | 
			
		||||
				return protoreflect.Value{}, d.newError(tok.Pos(), "contains invalid UTF-8")
 | 
			
		||||
			}
 | 
			
		||||
			return pref.ValueOfString(s), nil
 | 
			
		||||
			return protoreflect.ValueOfString(s), nil
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	case pref.BytesKind:
 | 
			
		||||
	case protoreflect.BytesKind:
 | 
			
		||||
		if b, ok := tok.String(); ok {
 | 
			
		||||
			return pref.ValueOfBytes([]byte(b)), nil
 | 
			
		||||
			return protoreflect.ValueOfBytes([]byte(b)), nil
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	case pref.EnumKind:
 | 
			
		||||
	case protoreflect.EnumKind:
 | 
			
		||||
		if lit, ok := tok.Enum(); ok {
 | 
			
		||||
			// Lookup EnumNumber based on name.
 | 
			
		||||
			if enumVal := fd.Enum().Values().ByName(pref.Name(lit)); enumVal != nil {
 | 
			
		||||
				return pref.ValueOfEnum(enumVal.Number()), nil
 | 
			
		||||
			if enumVal := fd.Enum().Values().ByName(protoreflect.Name(lit)); enumVal != nil {
 | 
			
		||||
				return protoreflect.ValueOfEnum(enumVal.Number()), nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		if num, ok := tok.Int32(); ok {
 | 
			
		||||
			return pref.ValueOfEnum(pref.EnumNumber(num)), nil
 | 
			
		||||
			return protoreflect.ValueOfEnum(protoreflect.EnumNumber(num)), nil
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	default:
 | 
			
		||||
		panic(fmt.Sprintf("invalid scalar kind %v", kind))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return pref.Value{}, d.newError(tok.Pos(), "invalid value for %v type: %v", kind, tok.RawString())
 | 
			
		||||
	return protoreflect.Value{}, d.newError(tok.Pos(), "invalid value for %v type: %v", kind, tok.RawString())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// unmarshalList unmarshals into given protoreflect.List. A list value can
 | 
			
		||||
// either be in [] syntax or simply just a single scalar/message value.
 | 
			
		||||
func (d decoder) unmarshalList(fd pref.FieldDescriptor, list pref.List) error {
 | 
			
		||||
func (d decoder) unmarshalList(fd protoreflect.FieldDescriptor, list protoreflect.List) error {
 | 
			
		||||
	tok, err := d.Peek()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	switch fd.Kind() {
 | 
			
		||||
	case pref.MessageKind, pref.GroupKind:
 | 
			
		||||
	case protoreflect.MessageKind, protoreflect.GroupKind:
 | 
			
		||||
		switch tok.Kind() {
 | 
			
		||||
		case text.ListOpen:
 | 
			
		||||
			d.Read()
 | 
			
		||||
@@ -441,22 +441,22 @@ func (d decoder) unmarshalList(fd pref.FieldDescriptor, list pref.List) error {
 | 
			
		||||
 | 
			
		||||
// unmarshalMap unmarshals into given protoreflect.Map. A map value is a
 | 
			
		||||
// textproto message containing {key: <kvalue>, value: <mvalue>}.
 | 
			
		||||
func (d decoder) unmarshalMap(fd pref.FieldDescriptor, mmap pref.Map) error {
 | 
			
		||||
func (d decoder) unmarshalMap(fd protoreflect.FieldDescriptor, mmap protoreflect.Map) error {
 | 
			
		||||
	// Determine ahead whether map entry is a scalar type or a message type in
 | 
			
		||||
	// order to call the appropriate unmarshalMapValue func inside
 | 
			
		||||
	// unmarshalMapEntry.
 | 
			
		||||
	var unmarshalMapValue func() (pref.Value, error)
 | 
			
		||||
	var unmarshalMapValue func() (protoreflect.Value, error)
 | 
			
		||||
	switch fd.MapValue().Kind() {
 | 
			
		||||
	case pref.MessageKind, pref.GroupKind:
 | 
			
		||||
		unmarshalMapValue = func() (pref.Value, error) {
 | 
			
		||||
	case protoreflect.MessageKind, protoreflect.GroupKind:
 | 
			
		||||
		unmarshalMapValue = func() (protoreflect.Value, error) {
 | 
			
		||||
			pval := mmap.NewValue()
 | 
			
		||||
			if err := d.unmarshalMessage(pval.Message(), true); err != nil {
 | 
			
		||||
				return pref.Value{}, err
 | 
			
		||||
				return protoreflect.Value{}, err
 | 
			
		||||
			}
 | 
			
		||||
			return pval, nil
 | 
			
		||||
		}
 | 
			
		||||
	default:
 | 
			
		||||
		unmarshalMapValue = func() (pref.Value, error) {
 | 
			
		||||
		unmarshalMapValue = func() (protoreflect.Value, error) {
 | 
			
		||||
			return d.unmarshalScalar(fd.MapValue())
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
@@ -494,9 +494,9 @@ func (d decoder) unmarshalMap(fd pref.FieldDescriptor, mmap pref.Map) error {
 | 
			
		||||
 | 
			
		||||
// unmarshalMap unmarshals into given protoreflect.Map. A map value is a
 | 
			
		||||
// textproto message containing {key: <kvalue>, value: <mvalue>}.
 | 
			
		||||
func (d decoder) unmarshalMapEntry(fd pref.FieldDescriptor, mmap pref.Map, unmarshalMapValue func() (pref.Value, error)) error {
 | 
			
		||||
	var key pref.MapKey
 | 
			
		||||
	var pval pref.Value
 | 
			
		||||
func (d decoder) unmarshalMapEntry(fd protoreflect.FieldDescriptor, mmap protoreflect.Map, unmarshalMapValue func() (protoreflect.Value, error)) error {
 | 
			
		||||
	var key protoreflect.MapKey
 | 
			
		||||
	var pval protoreflect.Value
 | 
			
		||||
Loop:
 | 
			
		||||
	for {
 | 
			
		||||
		// Read field name.
 | 
			
		||||
@@ -520,7 +520,7 @@ Loop:
 | 
			
		||||
			return d.unexpectedTokenError(tok)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		switch name := pref.Name(tok.IdentName()); name {
 | 
			
		||||
		switch name := protoreflect.Name(tok.IdentName()); name {
 | 
			
		||||
		case genid.MapEntry_Key_field_name:
 | 
			
		||||
			if !tok.HasSeparator() {
 | 
			
		||||
				return d.syntaxError(tok.Pos(), "missing field separator :")
 | 
			
		||||
@@ -535,7 +535,7 @@ Loop:
 | 
			
		||||
			key = val.MapKey()
 | 
			
		||||
 | 
			
		||||
		case genid.MapEntry_Value_field_name:
 | 
			
		||||
			if kind := fd.MapValue().Kind(); (kind != pref.MessageKind) && (kind != pref.GroupKind) {
 | 
			
		||||
			if kind := fd.MapValue().Kind(); (kind != protoreflect.MessageKind) && (kind != protoreflect.GroupKind) {
 | 
			
		||||
				if !tok.HasSeparator() {
 | 
			
		||||
					return d.syntaxError(tok.Pos(), "missing field separator :")
 | 
			
		||||
				}
 | 
			
		||||
@@ -561,7 +561,7 @@ Loop:
 | 
			
		||||
	}
 | 
			
		||||
	if !pval.IsValid() {
 | 
			
		||||
		switch fd.MapValue().Kind() {
 | 
			
		||||
		case pref.MessageKind, pref.GroupKind:
 | 
			
		||||
		case protoreflect.MessageKind, protoreflect.GroupKind:
 | 
			
		||||
			// If value field is not set for message/group types, construct an
 | 
			
		||||
			// empty one as default.
 | 
			
		||||
			pval = mmap.NewValue()
 | 
			
		||||
@@ -575,7 +575,7 @@ Loop:
 | 
			
		||||
 | 
			
		||||
// unmarshalAny unmarshals an Any textproto. It can either be in expanded form
 | 
			
		||||
// or non-expanded form.
 | 
			
		||||
func (d decoder) unmarshalAny(m pref.Message, checkDelims bool) error {
 | 
			
		||||
func (d decoder) unmarshalAny(m protoreflect.Message, checkDelims bool) error {
 | 
			
		||||
	var typeURL string
 | 
			
		||||
	var bValue []byte
 | 
			
		||||
	var seenTypeUrl bool
 | 
			
		||||
@@ -619,7 +619,7 @@ Loop:
 | 
			
		||||
				return d.syntaxError(tok.Pos(), "missing field separator :")
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			switch name := pref.Name(tok.IdentName()); name {
 | 
			
		||||
			switch name := protoreflect.Name(tok.IdentName()); name {
 | 
			
		||||
			case genid.Any_TypeUrl_field_name:
 | 
			
		||||
				if seenTypeUrl {
 | 
			
		||||
					return d.newError(tok.Pos(), "duplicate %v field", genid.Any_TypeUrl_field_fullname)
 | 
			
		||||
@@ -686,10 +686,10 @@ Loop:
 | 
			
		||||
 | 
			
		||||
	fds := m.Descriptor().Fields()
 | 
			
		||||
	if len(typeURL) > 0 {
 | 
			
		||||
		m.Set(fds.ByNumber(genid.Any_TypeUrl_field_number), pref.ValueOfString(typeURL))
 | 
			
		||||
		m.Set(fds.ByNumber(genid.Any_TypeUrl_field_number), protoreflect.ValueOfString(typeURL))
 | 
			
		||||
	}
 | 
			
		||||
	if len(bValue) > 0 {
 | 
			
		||||
		m.Set(fds.ByNumber(genid.Any_Value_field_number), pref.ValueOfBytes(bValue))
 | 
			
		||||
		m.Set(fds.ByNumber(genid.Any_Value_field_number), protoreflect.ValueOfBytes(bValue))
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										53
									
								
								vendor/google.golang.org/protobuf/encoding/prototext/encode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										53
									
								
								vendor/google.golang.org/protobuf/encoding/prototext/encode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -20,7 +20,6 @@ import (
 | 
			
		||||
	"google.golang.org/protobuf/internal/strs"
 | 
			
		||||
	"google.golang.org/protobuf/proto"
 | 
			
		||||
	"google.golang.org/protobuf/reflect/protoreflect"
 | 
			
		||||
	pref "google.golang.org/protobuf/reflect/protoreflect"
 | 
			
		||||
	"google.golang.org/protobuf/reflect/protoregistry"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -102,13 +101,19 @@ func (o MarshalOptions) Format(m proto.Message) string {
 | 
			
		||||
// MarshalOptions object. Do not depend on the output being stable. It may
 | 
			
		||||
// change over time across different versions of the program.
 | 
			
		||||
func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) {
 | 
			
		||||
	return o.marshal(m)
 | 
			
		||||
	return o.marshal(nil, m)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MarshalAppend appends the textproto format encoding of m to b,
 | 
			
		||||
// returning the result.
 | 
			
		||||
func (o MarshalOptions) MarshalAppend(b []byte, m proto.Message) ([]byte, error) {
 | 
			
		||||
	return o.marshal(b, m)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// marshal is a centralized function that all marshal operations go through.
 | 
			
		||||
// For profiling purposes, avoid changing the name of this function or
 | 
			
		||||
// introducing other code paths for marshal that do not go through this.
 | 
			
		||||
func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) {
 | 
			
		||||
func (o MarshalOptions) marshal(b []byte, m proto.Message) ([]byte, error) {
 | 
			
		||||
	var delims = [2]byte{'{', '}'}
 | 
			
		||||
 | 
			
		||||
	if o.Multiline && o.Indent == "" {
 | 
			
		||||
@@ -118,7 +123,7 @@ func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) {
 | 
			
		||||
		o.Resolver = protoregistry.GlobalTypes
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	internalEnc, err := text.NewEncoder(o.Indent, delims, o.EmitASCII)
 | 
			
		||||
	internalEnc, err := text.NewEncoder(b, o.Indent, delims, o.EmitASCII)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -126,7 +131,7 @@ func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) {
 | 
			
		||||
	// Treat nil message interface as an empty message,
 | 
			
		||||
	// in which case there is nothing to output.
 | 
			
		||||
	if m == nil {
 | 
			
		||||
		return []byte{}, nil
 | 
			
		||||
		return b, nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	enc := encoder{internalEnc, o}
 | 
			
		||||
@@ -150,7 +155,7 @@ type encoder struct {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// marshalMessage marshals the given protoreflect.Message.
 | 
			
		||||
func (e encoder) marshalMessage(m pref.Message, inclDelims bool) error {
 | 
			
		||||
func (e encoder) marshalMessage(m protoreflect.Message, inclDelims bool) error {
 | 
			
		||||
	messageDesc := m.Descriptor()
 | 
			
		||||
	if !flags.ProtoLegacy && messageset.IsMessageSet(messageDesc) {
 | 
			
		||||
		return errors.New("no support for proto1 MessageSets")
 | 
			
		||||
@@ -190,7 +195,7 @@ func (e encoder) marshalMessage(m pref.Message, inclDelims bool) error {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// marshalField marshals the given field with protoreflect.Value.
 | 
			
		||||
func (e encoder) marshalField(name string, val pref.Value, fd pref.FieldDescriptor) error {
 | 
			
		||||
func (e encoder) marshalField(name string, val protoreflect.Value, fd protoreflect.FieldDescriptor) error {
 | 
			
		||||
	switch {
 | 
			
		||||
	case fd.IsList():
 | 
			
		||||
		return e.marshalList(name, val.List(), fd)
 | 
			
		||||
@@ -204,40 +209,40 @@ func (e encoder) marshalField(name string, val pref.Value, fd pref.FieldDescript
 | 
			
		||||
 | 
			
		||||
// marshalSingular marshals the given non-repeated field value. This includes
 | 
			
		||||
// all scalar types, enums, messages, and groups.
 | 
			
		||||
func (e encoder) marshalSingular(val pref.Value, fd pref.FieldDescriptor) error {
 | 
			
		||||
func (e encoder) marshalSingular(val protoreflect.Value, fd protoreflect.FieldDescriptor) error {
 | 
			
		||||
	kind := fd.Kind()
 | 
			
		||||
	switch kind {
 | 
			
		||||
	case pref.BoolKind:
 | 
			
		||||
	case protoreflect.BoolKind:
 | 
			
		||||
		e.WriteBool(val.Bool())
 | 
			
		||||
 | 
			
		||||
	case pref.StringKind:
 | 
			
		||||
	case protoreflect.StringKind:
 | 
			
		||||
		s := val.String()
 | 
			
		||||
		if !e.opts.allowInvalidUTF8 && strs.EnforceUTF8(fd) && !utf8.ValidString(s) {
 | 
			
		||||
			return errors.InvalidUTF8(string(fd.FullName()))
 | 
			
		||||
		}
 | 
			
		||||
		e.WriteString(s)
 | 
			
		||||
 | 
			
		||||
	case pref.Int32Kind, pref.Int64Kind,
 | 
			
		||||
		pref.Sint32Kind, pref.Sint64Kind,
 | 
			
		||||
		pref.Sfixed32Kind, pref.Sfixed64Kind:
 | 
			
		||||
	case protoreflect.Int32Kind, protoreflect.Int64Kind,
 | 
			
		||||
		protoreflect.Sint32Kind, protoreflect.Sint64Kind,
 | 
			
		||||
		protoreflect.Sfixed32Kind, protoreflect.Sfixed64Kind:
 | 
			
		||||
		e.WriteInt(val.Int())
 | 
			
		||||
 | 
			
		||||
	case pref.Uint32Kind, pref.Uint64Kind,
 | 
			
		||||
		pref.Fixed32Kind, pref.Fixed64Kind:
 | 
			
		||||
	case protoreflect.Uint32Kind, protoreflect.Uint64Kind,
 | 
			
		||||
		protoreflect.Fixed32Kind, protoreflect.Fixed64Kind:
 | 
			
		||||
		e.WriteUint(val.Uint())
 | 
			
		||||
 | 
			
		||||
	case pref.FloatKind:
 | 
			
		||||
	case protoreflect.FloatKind:
 | 
			
		||||
		// Encoder.WriteFloat handles the special numbers NaN and infinites.
 | 
			
		||||
		e.WriteFloat(val.Float(), 32)
 | 
			
		||||
 | 
			
		||||
	case pref.DoubleKind:
 | 
			
		||||
	case protoreflect.DoubleKind:
 | 
			
		||||
		// Encoder.WriteFloat handles the special numbers NaN and infinites.
 | 
			
		||||
		e.WriteFloat(val.Float(), 64)
 | 
			
		||||
 | 
			
		||||
	case pref.BytesKind:
 | 
			
		||||
	case protoreflect.BytesKind:
 | 
			
		||||
		e.WriteString(string(val.Bytes()))
 | 
			
		||||
 | 
			
		||||
	case pref.EnumKind:
 | 
			
		||||
	case protoreflect.EnumKind:
 | 
			
		||||
		num := val.Enum()
 | 
			
		||||
		if desc := fd.Enum().Values().ByNumber(num); desc != nil {
 | 
			
		||||
			e.WriteLiteral(string(desc.Name()))
 | 
			
		||||
@@ -246,7 +251,7 @@ func (e encoder) marshalSingular(val pref.Value, fd pref.FieldDescriptor) error
 | 
			
		||||
			e.WriteInt(int64(num))
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	case pref.MessageKind, pref.GroupKind:
 | 
			
		||||
	case protoreflect.MessageKind, protoreflect.GroupKind:
 | 
			
		||||
		return e.marshalMessage(val.Message(), true)
 | 
			
		||||
 | 
			
		||||
	default:
 | 
			
		||||
@@ -256,7 +261,7 @@ func (e encoder) marshalSingular(val pref.Value, fd pref.FieldDescriptor) error
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// marshalList marshals the given protoreflect.List as multiple name-value fields.
 | 
			
		||||
func (e encoder) marshalList(name string, list pref.List, fd pref.FieldDescriptor) error {
 | 
			
		||||
func (e encoder) marshalList(name string, list protoreflect.List, fd protoreflect.FieldDescriptor) error {
 | 
			
		||||
	size := list.Len()
 | 
			
		||||
	for i := 0; i < size; i++ {
 | 
			
		||||
		e.WriteName(name)
 | 
			
		||||
@@ -268,9 +273,9 @@ func (e encoder) marshalList(name string, list pref.List, fd pref.FieldDescripto
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// marshalMap marshals the given protoreflect.Map as multiple name-value fields.
 | 
			
		||||
func (e encoder) marshalMap(name string, mmap pref.Map, fd pref.FieldDescriptor) error {
 | 
			
		||||
func (e encoder) marshalMap(name string, mmap protoreflect.Map, fd protoreflect.FieldDescriptor) error {
 | 
			
		||||
	var err error
 | 
			
		||||
	order.RangeEntries(mmap, order.GenericKeyOrder, func(key pref.MapKey, val pref.Value) bool {
 | 
			
		||||
	order.RangeEntries(mmap, order.GenericKeyOrder, func(key protoreflect.MapKey, val protoreflect.Value) bool {
 | 
			
		||||
		e.WriteName(name)
 | 
			
		||||
		e.StartMessage()
 | 
			
		||||
		defer e.EndMessage()
 | 
			
		||||
@@ -334,7 +339,7 @@ func (e encoder) marshalUnknown(b []byte) {
 | 
			
		||||
 | 
			
		||||
// marshalAny marshals the given google.protobuf.Any message in expanded form.
 | 
			
		||||
// It returns true if it was able to marshal, else false.
 | 
			
		||||
func (e encoder) marshalAny(any pref.Message) bool {
 | 
			
		||||
func (e encoder) marshalAny(any protoreflect.Message) bool {
 | 
			
		||||
	// Construct the embedded message.
 | 
			
		||||
	fds := any.Descriptor().Fields()
 | 
			
		||||
	fdType := fds.ByNumber(genid.Any_TypeUrl_field_number)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								vendor/google.golang.org/protobuf/encoding/protowire/wire.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/google.golang.org/protobuf/encoding/protowire/wire.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -3,7 +3,7 @@
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
// Package protowire parses and formats the raw wire encoding.
 | 
			
		||||
// See https://developers.google.com/protocol-buffers/docs/encoding.
 | 
			
		||||
// See https://protobuf.dev/programming-guides/encoding.
 | 
			
		||||
//
 | 
			
		||||
// For marshaling and unmarshaling entire protobuf messages,
 | 
			
		||||
// use the "google.golang.org/protobuf/proto" package instead.
 | 
			
		||||
@@ -29,12 +29,8 @@ const (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// IsValid reports whether the field number is semantically valid.
 | 
			
		||||
//
 | 
			
		||||
// Note that while numbers within the reserved range are semantically invalid,
 | 
			
		||||
// they are syntactically valid in the wire format.
 | 
			
		||||
// Implementations may treat records with reserved field numbers as unknown.
 | 
			
		||||
func (n Number) IsValid() bool {
 | 
			
		||||
	return MinValidNumber <= n && n < FirstReservedNumber || LastReservedNumber < n && n <= MaxValidNumber
 | 
			
		||||
	return MinValidNumber <= n && n <= MaxValidNumber
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Type represents the wire type.
 | 
			
		||||
@@ -516,6 +512,7 @@ func EncodeTag(num Number, typ Type) uint64 {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DecodeZigZag decodes a zig-zag-encoded uint64 as an int64.
 | 
			
		||||
//
 | 
			
		||||
//	Input:  {…,  5,  3,  1,  0,  2,  4,  6, …}
 | 
			
		||||
//	Output: {…, -3, -2, -1,  0, +1, +2, +3, …}
 | 
			
		||||
func DecodeZigZag(x uint64) int64 {
 | 
			
		||||
@@ -523,6 +520,7 @@ func DecodeZigZag(x uint64) int64 {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// EncodeZigZag encodes an int64 as a zig-zag-encoded uint64.
 | 
			
		||||
//
 | 
			
		||||
//	Input:  {…, -3, -2, -1,  0, +1, +2, +3, …}
 | 
			
		||||
//	Output: {…,  5,  3,  1,  0,  2,  4,  6, …}
 | 
			
		||||
func EncodeZigZag(x int64) uint64 {
 | 
			
		||||
@@ -530,6 +528,7 @@ func EncodeZigZag(x int64) uint64 {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DecodeBool decodes a uint64 as a bool.
 | 
			
		||||
//
 | 
			
		||||
//	Input:  {    0,    1,    2, …}
 | 
			
		||||
//	Output: {false, true, true, …}
 | 
			
		||||
func DecodeBool(x uint64) bool {
 | 
			
		||||
@@ -537,6 +536,7 @@ func DecodeBool(x uint64) bool {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// EncodeBool encodes a bool as a uint64.
 | 
			
		||||
//
 | 
			
		||||
//	Input:  {false, true}
 | 
			
		||||
//	Output: {    0,    1}
 | 
			
		||||
func EncodeBool(x bool) uint64 {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user