github.com/mdaxf/iac@v0.0.0-20240519030858-58a061660378/vendor_skip/google.golang.org/protobuf/proto/encode_gen.go (about)

     1  // Copyright 2018 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // Code generated by generate-types. DO NOT EDIT.
     6  
     7  package proto
     8  
     9  import (
    10  	"math"
    11  	"unicode/utf8"
    12  
    13  	"google.golang.org/protobuf/encoding/protowire"
    14  	"google.golang.org/protobuf/internal/errors"
    15  	"google.golang.org/protobuf/internal/strs"
    16  	"google.golang.org/protobuf/reflect/protoreflect"
    17  )
    18  
    19  var wireTypes = map[protoreflect.Kind]protowire.Type{
    20  	protoreflect.BoolKind:     protowire.VarintType,
    21  	protoreflect.EnumKind:     protowire.VarintType,
    22  	protoreflect.Int32Kind:    protowire.VarintType,
    23  	protoreflect.Sint32Kind:   protowire.VarintType,
    24  	protoreflect.Uint32Kind:   protowire.VarintType,
    25  	protoreflect.Int64Kind:    protowire.VarintType,
    26  	protoreflect.Sint64Kind:   protowire.VarintType,
    27  	protoreflect.Uint64Kind:   protowire.VarintType,
    28  	protoreflect.Sfixed32Kind: protowire.Fixed32Type,
    29  	protoreflect.Fixed32Kind:  protowire.Fixed32Type,
    30  	protoreflect.FloatKind:    protowire.Fixed32Type,
    31  	protoreflect.Sfixed64Kind: protowire.Fixed64Type,
    32  	protoreflect.Fixed64Kind:  protowire.Fixed64Type,
    33  	protoreflect.DoubleKind:   protowire.Fixed64Type,
    34  	protoreflect.StringKind:   protowire.BytesType,
    35  	protoreflect.BytesKind:    protowire.BytesType,
    36  	protoreflect.MessageKind:  protowire.BytesType,
    37  	protoreflect.GroupKind:    protowire.StartGroupType,
    38  }
    39  
    40  func (o MarshalOptions) marshalSingular(b []byte, fd protoreflect.FieldDescriptor, v protoreflect.Value) ([]byte, error) {
    41  	switch fd.Kind() {
    42  	case protoreflect.BoolKind:
    43  		b = protowire.AppendVarint(b, protowire.EncodeBool(v.Bool()))
    44  	case protoreflect.EnumKind:
    45  		b = protowire.AppendVarint(b, uint64(v.Enum()))
    46  	case protoreflect.Int32Kind:
    47  		b = protowire.AppendVarint(b, uint64(int32(v.Int())))
    48  	case protoreflect.Sint32Kind:
    49  		b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(int32(v.Int()))))
    50  	case protoreflect.Uint32Kind:
    51  		b = protowire.AppendVarint(b, uint64(uint32(v.Uint())))
    52  	case protoreflect.Int64Kind:
    53  		b = protowire.AppendVarint(b, uint64(v.Int()))
    54  	case protoreflect.Sint64Kind:
    55  		b = protowire.AppendVarint(b, protowire.EncodeZigZag(v.Int()))
    56  	case protoreflect.Uint64Kind:
    57  		b = protowire.AppendVarint(b, v.Uint())
    58  	case protoreflect.Sfixed32Kind:
    59  		b = protowire.AppendFixed32(b, uint32(v.Int()))
    60  	case protoreflect.Fixed32Kind:
    61  		b = protowire.AppendFixed32(b, uint32(v.Uint()))
    62  	case protoreflect.FloatKind:
    63  		b = protowire.AppendFixed32(b, math.Float32bits(float32(v.Float())))
    64  	case protoreflect.Sfixed64Kind:
    65  		b = protowire.AppendFixed64(b, uint64(v.Int()))
    66  	case protoreflect.Fixed64Kind:
    67  		b = protowire.AppendFixed64(b, v.Uint())
    68  	case protoreflect.DoubleKind:
    69  		b = protowire.AppendFixed64(b, math.Float64bits(v.Float()))
    70  	case protoreflect.StringKind:
    71  		if strs.EnforceUTF8(fd) && !utf8.ValidString(v.String()) {
    72  			return b, errors.InvalidUTF8(string(fd.FullName()))
    73  		}
    74  		b = protowire.AppendString(b, v.String())
    75  	case protoreflect.BytesKind:
    76  		b = protowire.AppendBytes(b, v.Bytes())
    77  	case protoreflect.MessageKind:
    78  		var pos int
    79  		var err error
    80  		b, pos = appendSpeculativeLength(b)
    81  		b, err = o.marshalMessage(b, v.Message())
    82  		if err != nil {
    83  			return b, err
    84  		}
    85  		b = finishSpeculativeLength(b, pos)
    86  	case protoreflect.GroupKind:
    87  		var err error
    88  		b, err = o.marshalMessage(b, v.Message())
    89  		if err != nil {
    90  			return b, err
    91  		}
    92  		b = protowire.AppendVarint(b, protowire.EncodeTag(fd.Number(), protowire.EndGroupType))
    93  	default:
    94  		return b, errors.New("invalid kind %v", fd.Kind())
    95  	}
    96  	return b, nil
    97  }