mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +08:00 
			
		
		
		
	vendor: update buildkit v0.14-dev version 549891b
Brings in formatter for lint requests. Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
		
							
								
								
									
										38
									
								
								vendor/google.golang.org/protobuf/encoding/protojson/decode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										38
									
								
								vendor/google.golang.org/protobuf/encoding/protojson/decode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -11,6 +11,7 @@ import (
 | 
			
		||||
	"strconv"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	"google.golang.org/protobuf/encoding/protowire"
 | 
			
		||||
	"google.golang.org/protobuf/internal/encoding/json"
 | 
			
		||||
	"google.golang.org/protobuf/internal/encoding/messageset"
 | 
			
		||||
	"google.golang.org/protobuf/internal/errors"
 | 
			
		||||
@@ -23,7 +24,7 @@ import (
 | 
			
		||||
	"google.golang.org/protobuf/reflect/protoregistry"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Unmarshal reads the given []byte into the given proto.Message.
 | 
			
		||||
// Unmarshal reads the given []byte into the given [proto.Message].
 | 
			
		||||
// The provided message must be mutable (e.g., a non-nil pointer to a message).
 | 
			
		||||
func Unmarshal(b []byte, m proto.Message) error {
 | 
			
		||||
	return UnmarshalOptions{}.Unmarshal(b, m)
 | 
			
		||||
@@ -37,7 +38,7 @@ type UnmarshalOptions struct {
 | 
			
		||||
	// required fields will not return an error.
 | 
			
		||||
	AllowPartial bool
 | 
			
		||||
 | 
			
		||||
	// If DiscardUnknown is set, unknown fields are ignored.
 | 
			
		||||
	// If DiscardUnknown is set, unknown fields and enum name values are ignored.
 | 
			
		||||
	DiscardUnknown bool
 | 
			
		||||
 | 
			
		||||
	// Resolver is used for looking up types when unmarshaling
 | 
			
		||||
@@ -47,9 +48,13 @@ type UnmarshalOptions struct {
 | 
			
		||||
		protoregistry.MessageTypeResolver
 | 
			
		||||
		protoregistry.ExtensionTypeResolver
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// RecursionLimit limits how deeply messages may be nested.
 | 
			
		||||
	// If zero, a default limit is applied.
 | 
			
		||||
	RecursionLimit int
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Unmarshal reads the given []byte and populates the given proto.Message
 | 
			
		||||
// Unmarshal reads the given []byte and populates the given [proto.Message]
 | 
			
		||||
// using options in the UnmarshalOptions object.
 | 
			
		||||
// It will clear the message first before setting the fields.
 | 
			
		||||
// If it returns an error, the given message may be partially set.
 | 
			
		||||
@@ -67,6 +72,9 @@ func (o UnmarshalOptions) unmarshal(b []byte, m proto.Message) error {
 | 
			
		||||
	if o.Resolver == nil {
 | 
			
		||||
		o.Resolver = protoregistry.GlobalTypes
 | 
			
		||||
	}
 | 
			
		||||
	if o.RecursionLimit == 0 {
 | 
			
		||||
		o.RecursionLimit = protowire.DefaultRecursionLimit
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	dec := decoder{json.NewDecoder(b), o}
 | 
			
		||||
	if err := dec.unmarshalMessage(m.ProtoReflect(), false); err != nil {
 | 
			
		||||
@@ -114,6 +122,10 @@ func (d decoder) syntaxError(pos int, f string, x ...interface{}) error {
 | 
			
		||||
 | 
			
		||||
// unmarshalMessage unmarshals a message into the given protoreflect.Message.
 | 
			
		||||
func (d decoder) unmarshalMessage(m protoreflect.Message, skipTypeURL bool) error {
 | 
			
		||||
	d.opts.RecursionLimit--
 | 
			
		||||
	if d.opts.RecursionLimit < 0 {
 | 
			
		||||
		return errors.New("exceeded max recursion depth")
 | 
			
		||||
	}
 | 
			
		||||
	if unmarshal := wellKnownTypeUnmarshaler(m.Descriptor().FullName()); unmarshal != nil {
 | 
			
		||||
		return unmarshal(d, m)
 | 
			
		||||
	}
 | 
			
		||||
@@ -266,7 +278,9 @@ func (d decoder) unmarshalSingular(m protoreflect.Message, fd protoreflect.Field
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	m.Set(fd, val)
 | 
			
		||||
	if val.IsValid() {
 | 
			
		||||
		m.Set(fd, val)
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -329,7 +343,7 @@ func (d decoder) unmarshalScalar(fd protoreflect.FieldDescriptor) (protoreflect.
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	case protoreflect.EnumKind:
 | 
			
		||||
		if v, ok := unmarshalEnum(tok, fd); ok {
 | 
			
		||||
		if v, ok := unmarshalEnum(tok, fd, d.opts.DiscardUnknown); ok {
 | 
			
		||||
			return v, nil
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
@@ -474,7 +488,7 @@ func unmarshalBytes(tok json.Token) (protoreflect.Value, bool) {
 | 
			
		||||
	return protoreflect.ValueOfBytes(b), true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func unmarshalEnum(tok json.Token, fd protoreflect.FieldDescriptor) (protoreflect.Value, bool) {
 | 
			
		||||
func unmarshalEnum(tok json.Token, fd protoreflect.FieldDescriptor, discardUnknown bool) (protoreflect.Value, bool) {
 | 
			
		||||
	switch tok.Kind() {
 | 
			
		||||
	case json.String:
 | 
			
		||||
		// Lookup EnumNumber based on name.
 | 
			
		||||
@@ -482,6 +496,9 @@ func unmarshalEnum(tok json.Token, fd protoreflect.FieldDescriptor) (protoreflec
 | 
			
		||||
		if enumVal := fd.Enum().Values().ByName(protoreflect.Name(s)); enumVal != nil {
 | 
			
		||||
			return protoreflect.ValueOfEnum(enumVal.Number()), true
 | 
			
		||||
		}
 | 
			
		||||
		if discardUnknown {
 | 
			
		||||
			return protoreflect.Value{}, true
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	case json.Number:
 | 
			
		||||
		if n, ok := tok.Int(32); ok {
 | 
			
		||||
@@ -542,7 +559,9 @@ func (d decoder) unmarshalList(list protoreflect.List, fd protoreflect.FieldDesc
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
			list.Append(val)
 | 
			
		||||
			if val.IsValid() {
 | 
			
		||||
				list.Append(val)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -609,8 +628,9 @@ Loop:
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		mmap.Set(pkey, pval)
 | 
			
		||||
		if pval.IsValid() {
 | 
			
		||||
			mmap.Set(pkey, pval)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/google.golang.org/protobuf/encoding/protojson/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/google.golang.org/protobuf/encoding/protojson/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -6,6 +6,6 @@
 | 
			
		||||
// format. It follows the guide at
 | 
			
		||||
// https://protobuf.dev/programming-guides/proto3#json.
 | 
			
		||||
//
 | 
			
		||||
// This package produces a different output than the standard "encoding/json"
 | 
			
		||||
// This package produces a different output than the standard [encoding/json]
 | 
			
		||||
// package, which does not operate correctly on protocol buffer messages.
 | 
			
		||||
package protojson
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										39
									
								
								vendor/google.golang.org/protobuf/encoding/protojson/encode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										39
									
								
								vendor/google.golang.org/protobuf/encoding/protojson/encode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -31,7 +31,7 @@ func Format(m proto.Message) string {
 | 
			
		||||
	return MarshalOptions{Multiline: true}.Format(m)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Marshal writes the given proto.Message in JSON format using default options.
 | 
			
		||||
// Marshal writes the given [proto.Message] in JSON format using default options.
 | 
			
		||||
// Do not depend on the output being stable. It may change over time across
 | 
			
		||||
// different versions of the program.
 | 
			
		||||
func Marshal(m proto.Message) ([]byte, error) {
 | 
			
		||||
@@ -81,6 +81,25 @@ type MarshalOptions struct {
 | 
			
		||||
	//  ╚═══════╧════════════════════════════╝
 | 
			
		||||
	EmitUnpopulated bool
 | 
			
		||||
 | 
			
		||||
	// EmitDefaultValues specifies whether to emit default-valued primitive fields,
 | 
			
		||||
	// empty lists, and empty maps. The fields affected are as follows:
 | 
			
		||||
	//  ╔═══════╤════════════════════════════════════════╗
 | 
			
		||||
	//  ║ JSON  │ Protobuf field                         ║
 | 
			
		||||
	//  ╠═══════╪════════════════════════════════════════╣
 | 
			
		||||
	//  ║ false │ non-optional scalar boolean fields     ║
 | 
			
		||||
	//  ║ 0     │ non-optional scalar numeric fields     ║
 | 
			
		||||
	//  ║ ""    │ non-optional scalar string/byte fields ║
 | 
			
		||||
	//  ║ []    │ empty repeated fields                  ║
 | 
			
		||||
	//  ║ {}    │ empty map fields                       ║
 | 
			
		||||
	//  ╚═══════╧════════════════════════════════════════╝
 | 
			
		||||
	//
 | 
			
		||||
	// Behaves similarly to EmitUnpopulated, but does not emit "null"-value fields,
 | 
			
		||||
	// i.e. presence-sensing fields that are omitted will remain omitted to preserve
 | 
			
		||||
	// presence-sensing.
 | 
			
		||||
	// EmitUnpopulated takes precedence over EmitDefaultValues since the former generates
 | 
			
		||||
	// a strict superset of the latter.
 | 
			
		||||
	EmitDefaultValues bool
 | 
			
		||||
 | 
			
		||||
	// Resolver is used for looking up types when expanding google.protobuf.Any
 | 
			
		||||
	// messages. If nil, this defaults to using protoregistry.GlobalTypes.
 | 
			
		||||
	Resolver interface {
 | 
			
		||||
@@ -102,7 +121,7 @@ func (o MarshalOptions) Format(m proto.Message) string {
 | 
			
		||||
	return string(b)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Marshal marshals the given proto.Message in the JSON format using options in
 | 
			
		||||
// Marshal marshals the given [proto.Message] in the JSON format using options in
 | 
			
		||||
// MarshalOptions. 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) {
 | 
			
		||||
@@ -178,7 +197,11 @@ func (m typeURLFieldRanger) Range(f func(protoreflect.FieldDescriptor, protorefl
 | 
			
		||||
 | 
			
		||||
// unpopulatedFieldRanger wraps a protoreflect.Message and modifies its Range
 | 
			
		||||
// method to additionally iterate over unpopulated fields.
 | 
			
		||||
type unpopulatedFieldRanger struct{ protoreflect.Message }
 | 
			
		||||
type unpopulatedFieldRanger struct {
 | 
			
		||||
	protoreflect.Message
 | 
			
		||||
 | 
			
		||||
	skipNull bool
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (m unpopulatedFieldRanger) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
 | 
			
		||||
	fds := m.Descriptor().Fields()
 | 
			
		||||
@@ -192,6 +215,9 @@ func (m unpopulatedFieldRanger) Range(f func(protoreflect.FieldDescriptor, proto
 | 
			
		||||
		isProto2Scalar := fd.Syntax() == protoreflect.Proto2 && fd.Default().IsValid()
 | 
			
		||||
		isSingularMessage := fd.Cardinality() != protoreflect.Repeated && fd.Message() != nil
 | 
			
		||||
		if isProto2Scalar || isSingularMessage {
 | 
			
		||||
			if m.skipNull {
 | 
			
		||||
				continue
 | 
			
		||||
			}
 | 
			
		||||
			v = protoreflect.Value{} // use invalid value to emit null
 | 
			
		||||
		}
 | 
			
		||||
		if !f(fd, v) {
 | 
			
		||||
@@ -217,8 +243,11 @@ func (e encoder) marshalMessage(m protoreflect.Message, typeURL string) error {
 | 
			
		||||
	defer e.EndObject()
 | 
			
		||||
 | 
			
		||||
	var fields order.FieldRanger = m
 | 
			
		||||
	if e.opts.EmitUnpopulated {
 | 
			
		||||
		fields = unpopulatedFieldRanger{m}
 | 
			
		||||
	switch {
 | 
			
		||||
	case e.opts.EmitUnpopulated:
 | 
			
		||||
		fields = unpopulatedFieldRanger{Message: m, skipNull: false}
 | 
			
		||||
	case e.opts.EmitDefaultValues:
 | 
			
		||||
		fields = unpopulatedFieldRanger{Message: m, skipNull: true}
 | 
			
		||||
	}
 | 
			
		||||
	if typeURL != "" {
 | 
			
		||||
		fields = typeURLFieldRanger{fields, typeURL}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										59
									
								
								vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										59
									
								
								vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -176,7 +176,7 @@ func (d decoder) unmarshalAny(m protoreflect.Message) error {
 | 
			
		||||
	// Use another decoder to parse the unread bytes for @type field. This
 | 
			
		||||
	// avoids advancing a read from current decoder because the current JSON
 | 
			
		||||
	// object may contain the fields of the embedded type.
 | 
			
		||||
	dec := decoder{d.Clone(), UnmarshalOptions{}}
 | 
			
		||||
	dec := decoder{d.Clone(), UnmarshalOptions{RecursionLimit: d.opts.RecursionLimit}}
 | 
			
		||||
	tok, err := findTypeURL(dec)
 | 
			
		||||
	switch err {
 | 
			
		||||
	case errEmptyObject:
 | 
			
		||||
@@ -308,48 +308,29 @@ Loop:
 | 
			
		||||
// array) in order to advance the read to the next JSON value. It relies on
 | 
			
		||||
// the decoder returning an error if the types are not in valid sequence.
 | 
			
		||||
func (d decoder) skipJSONValue() error {
 | 
			
		||||
	tok, err := d.Read()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	// Only need to continue reading for objects and arrays.
 | 
			
		||||
	switch tok.Kind() {
 | 
			
		||||
	case json.ObjectOpen:
 | 
			
		||||
		for {
 | 
			
		||||
			tok, err := d.Read()
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
			switch tok.Kind() {
 | 
			
		||||
			case json.ObjectClose:
 | 
			
		||||
				return nil
 | 
			
		||||
			case json.Name:
 | 
			
		||||
				// Skip object field value.
 | 
			
		||||
				if err := d.skipJSONValue(); err != nil {
 | 
			
		||||
					return err
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
	var open int
 | 
			
		||||
	for {
 | 
			
		||||
		tok, err := d.Read()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	case json.ArrayOpen:
 | 
			
		||||
		for {
 | 
			
		||||
			tok, err := d.Peek()
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
			switch tok.Kind() {
 | 
			
		||||
			case json.ArrayClose:
 | 
			
		||||
				d.Read()
 | 
			
		||||
				return nil
 | 
			
		||||
			default:
 | 
			
		||||
				// Skip array item.
 | 
			
		||||
				if err := d.skipJSONValue(); err != nil {
 | 
			
		||||
					return err
 | 
			
		||||
				}
 | 
			
		||||
		switch tok.Kind() {
 | 
			
		||||
		case json.ObjectClose, json.ArrayClose:
 | 
			
		||||
			open--
 | 
			
		||||
		case json.ObjectOpen, json.ArrayOpen:
 | 
			
		||||
			open++
 | 
			
		||||
			if open > d.opts.RecursionLimit {
 | 
			
		||||
				return errors.New("exceeded max recursion depth")
 | 
			
		||||
			}
 | 
			
		||||
		case json.EOF:
 | 
			
		||||
			// This can only happen if there's a bug in Decoder.Read.
 | 
			
		||||
			// Avoid an infinite loop if this does happen.
 | 
			
		||||
			return errors.New("unexpected EOF")
 | 
			
		||||
		}
 | 
			
		||||
		if open == 0 {
 | 
			
		||||
			return nil
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// unmarshalAnyValue unmarshals the given custom-type message from the JSON
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/google.golang.org/protobuf/encoding/prototext/decode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/google.golang.org/protobuf/encoding/prototext/decode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -21,7 +21,7 @@ import (
 | 
			
		||||
	"google.golang.org/protobuf/reflect/protoregistry"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Unmarshal reads the given []byte into the given proto.Message.
 | 
			
		||||
// Unmarshal reads the given []byte into the given [proto.Message].
 | 
			
		||||
// The provided message must be mutable (e.g., a non-nil pointer to a message).
 | 
			
		||||
func Unmarshal(b []byte, m proto.Message) error {
 | 
			
		||||
	return UnmarshalOptions{}.Unmarshal(b, m)
 | 
			
		||||
@@ -51,7 +51,7 @@ type UnmarshalOptions struct {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Unmarshal reads the given []byte and populates the given proto.Message
 | 
			
		||||
// Unmarshal reads the given []byte and populates the given [proto.Message]
 | 
			
		||||
// using options in the UnmarshalOptions object.
 | 
			
		||||
// The provided message must be mutable (e.g., a non-nil pointer to a message).
 | 
			
		||||
func (o UnmarshalOptions) Unmarshal(b []byte, m proto.Message) error {
 | 
			
		||||
@@ -739,7 +739,9 @@ func (d decoder) skipValue() error {
 | 
			
		||||
			case text.ListClose:
 | 
			
		||||
				return nil
 | 
			
		||||
			case text.MessageOpen:
 | 
			
		||||
				return d.skipMessageValue()
 | 
			
		||||
				if err := d.skipMessageValue(); err != nil {
 | 
			
		||||
					return err
 | 
			
		||||
				}
 | 
			
		||||
			default:
 | 
			
		||||
				// Skip items. This will not validate whether skipped values are
 | 
			
		||||
				// of the same type or not, same behavior as C++
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/google.golang.org/protobuf/encoding/prototext/encode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/google.golang.org/protobuf/encoding/prototext/encode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -33,7 +33,7 @@ func Format(m proto.Message) string {
 | 
			
		||||
	return MarshalOptions{Multiline: true}.Format(m)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Marshal writes the given proto.Message in textproto format using default
 | 
			
		||||
// Marshal writes the given [proto.Message] in textproto format using default
 | 
			
		||||
// options. Do not depend on the output being stable. It may change over time
 | 
			
		||||
// across different versions of the program.
 | 
			
		||||
func Marshal(m proto.Message) ([]byte, error) {
 | 
			
		||||
@@ -97,7 +97,7 @@ func (o MarshalOptions) Format(m proto.Message) string {
 | 
			
		||||
	return string(b)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Marshal writes the given proto.Message in textproto format using options in
 | 
			
		||||
// Marshal writes the given [proto.Message] in textproto format using options in
 | 
			
		||||
// 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) {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								vendor/google.golang.org/protobuf/encoding/protowire/wire.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								vendor/google.golang.org/protobuf/encoding/protowire/wire.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -6,7 +6,7 @@
 | 
			
		||||
// See https://protobuf.dev/programming-guides/encoding.
 | 
			
		||||
//
 | 
			
		||||
// For marshaling and unmarshaling entire protobuf messages,
 | 
			
		||||
// use the "google.golang.org/protobuf/proto" package instead.
 | 
			
		||||
// use the [google.golang.org/protobuf/proto] package instead.
 | 
			
		||||
package protowire
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
@@ -87,7 +87,7 @@ func ParseError(n int) error {
 | 
			
		||||
 | 
			
		||||
// ConsumeField parses an entire field record (both tag and value) and returns
 | 
			
		||||
// the field number, the wire type, and the total length.
 | 
			
		||||
// This returns a negative length upon an error (see ParseError).
 | 
			
		||||
// This returns a negative length upon an error (see [ParseError]).
 | 
			
		||||
//
 | 
			
		||||
// The total length includes the tag header and the end group marker (if the
 | 
			
		||||
// field is a group).
 | 
			
		||||
@@ -104,8 +104,8 @@ func ConsumeField(b []byte) (Number, Type, int) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ConsumeFieldValue parses a field value and returns its length.
 | 
			
		||||
// This assumes that the field Number and wire Type have already been parsed.
 | 
			
		||||
// This returns a negative length upon an error (see ParseError).
 | 
			
		||||
// This assumes that the field [Number] and wire [Type] have already been parsed.
 | 
			
		||||
// This returns a negative length upon an error (see [ParseError]).
 | 
			
		||||
//
 | 
			
		||||
// When parsing a group, the length includes the end group marker and
 | 
			
		||||
// the end group is verified to match the starting field number.
 | 
			
		||||
@@ -164,7 +164,7 @@ func AppendTag(b []byte, num Number, typ Type) []byte {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ConsumeTag parses b as a varint-encoded tag, reporting its length.
 | 
			
		||||
// This returns a negative length upon an error (see ParseError).
 | 
			
		||||
// This returns a negative length upon an error (see [ParseError]).
 | 
			
		||||
func ConsumeTag(b []byte) (Number, Type, int) {
 | 
			
		||||
	v, n := ConsumeVarint(b)
 | 
			
		||||
	if n < 0 {
 | 
			
		||||
@@ -263,7 +263,7 @@ func AppendVarint(b []byte, v uint64) []byte {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ConsumeVarint parses b as a varint-encoded uint64, reporting its length.
 | 
			
		||||
// This returns a negative length upon an error (see ParseError).
 | 
			
		||||
// This returns a negative length upon an error (see [ParseError]).
 | 
			
		||||
func ConsumeVarint(b []byte) (v uint64, n int) {
 | 
			
		||||
	var y uint64
 | 
			
		||||
	if len(b) <= 0 {
 | 
			
		||||
@@ -384,7 +384,7 @@ func AppendFixed32(b []byte, v uint32) []byte {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ConsumeFixed32 parses b as a little-endian uint32, reporting its length.
 | 
			
		||||
// This returns a negative length upon an error (see ParseError).
 | 
			
		||||
// This returns a negative length upon an error (see [ParseError]).
 | 
			
		||||
func ConsumeFixed32(b []byte) (v uint32, n int) {
 | 
			
		||||
	if len(b) < 4 {
 | 
			
		||||
		return 0, errCodeTruncated
 | 
			
		||||
@@ -412,7 +412,7 @@ func AppendFixed64(b []byte, v uint64) []byte {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ConsumeFixed64 parses b as a little-endian uint64, reporting its length.
 | 
			
		||||
// This returns a negative length upon an error (see ParseError).
 | 
			
		||||
// This returns a negative length upon an error (see [ParseError]).
 | 
			
		||||
func ConsumeFixed64(b []byte) (v uint64, n int) {
 | 
			
		||||
	if len(b) < 8 {
 | 
			
		||||
		return 0, errCodeTruncated
 | 
			
		||||
@@ -432,7 +432,7 @@ func AppendBytes(b []byte, v []byte) []byte {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ConsumeBytes parses b as a length-prefixed bytes value, reporting its length.
 | 
			
		||||
// This returns a negative length upon an error (see ParseError).
 | 
			
		||||
// This returns a negative length upon an error (see [ParseError]).
 | 
			
		||||
func ConsumeBytes(b []byte) (v []byte, n int) {
 | 
			
		||||
	m, n := ConsumeVarint(b)
 | 
			
		||||
	if n < 0 {
 | 
			
		||||
@@ -456,7 +456,7 @@ func AppendString(b []byte, v string) []byte {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ConsumeString parses b as a length-prefixed bytes value, reporting its length.
 | 
			
		||||
// This returns a negative length upon an error (see ParseError).
 | 
			
		||||
// This returns a negative length upon an error (see [ParseError]).
 | 
			
		||||
func ConsumeString(b []byte) (v string, n int) {
 | 
			
		||||
	bb, n := ConsumeBytes(b)
 | 
			
		||||
	return string(bb), n
 | 
			
		||||
@@ -471,7 +471,7 @@ func AppendGroup(b []byte, num Number, v []byte) []byte {
 | 
			
		||||
// ConsumeGroup parses b as a group value until the trailing end group marker,
 | 
			
		||||
// and verifies that the end marker matches the provided num. The value v
 | 
			
		||||
// does not contain the end marker, while the length does contain the end marker.
 | 
			
		||||
// This returns a negative length upon an error (see ParseError).
 | 
			
		||||
// This returns a negative length upon an error (see [ParseError]).
 | 
			
		||||
func ConsumeGroup(num Number, b []byte) (v []byte, n int) {
 | 
			
		||||
	n = ConsumeFieldValue(num, StartGroupType, b)
 | 
			
		||||
	if n < 0 {
 | 
			
		||||
@@ -495,8 +495,8 @@ func SizeGroup(num Number, n int) int {
 | 
			
		||||
	return n + SizeTag(num)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DecodeTag decodes the field Number and wire Type from its unified form.
 | 
			
		||||
// The Number is -1 if the decoded field number overflows int32.
 | 
			
		||||
// DecodeTag decodes the field [Number] and wire [Type] from its unified form.
 | 
			
		||||
// The [Number] is -1 if the decoded field number overflows int32.
 | 
			
		||||
// Other than overflow, this does not check for field number validity.
 | 
			
		||||
func DecodeTag(x uint64) (Number, Type) {
 | 
			
		||||
	// NOTE: MessageSet allows for larger field numbers than normal.
 | 
			
		||||
@@ -506,7 +506,7 @@ func DecodeTag(x uint64) (Number, Type) {
 | 
			
		||||
	return Number(x >> 3), Type(x & 7)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// EncodeTag encodes the field Number and wire Type into its unified form.
 | 
			
		||||
// EncodeTag encodes the field [Number] and wire [Type] into its unified form.
 | 
			
		||||
func EncodeTag(num Number, typ Type) uint64 {
 | 
			
		||||
	return uint64(num)<<3 | uint64(typ&7)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user