mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 10:22:25 -05:00 
			
		
		
		
	Bumps [github.com/gin-contrib/gzip](https://github.com/gin-contrib/gzip) from 1.0.1 to 1.1.0. - [Release notes](https://github.com/gin-contrib/gzip/releases) - [Changelog](https://github.com/gin-contrib/gzip/blob/master/.goreleaser.yaml) - [Commits](https://github.com/gin-contrib/gzip/compare/v1.0.1...v1.1.0) --- updated-dependencies: - dependency-name: github.com/gin-contrib/gzip dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
		
			
				
	
	
		
			66 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // 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 proto
 | |
| 
 | |
| import (
 | |
| 	"reflect"
 | |
| 
 | |
| 	"google.golang.org/protobuf/reflect/protoreflect"
 | |
| 	"google.golang.org/protobuf/runtime/protoiface"
 | |
| )
 | |
| 
 | |
| // Equal reports whether two messages are equal,
 | |
| // by recursively comparing the fields of the message.
 | |
| //
 | |
| //   - Bytes fields are equal if they contain identical bytes.
 | |
| //     Empty bytes (regardless of nil-ness) are considered equal.
 | |
| //
 | |
| //   - Floating-point fields are equal if they contain the same value.
 | |
| //     Unlike the == operator, a NaN is equal to another NaN.
 | |
| //
 | |
| //   - Other scalar fields are equal if they contain the same value.
 | |
| //
 | |
| //   - Message fields are equal if they have
 | |
| //     the same set of populated known and extension field values, and
 | |
| //     the same set of unknown fields values.
 | |
| //
 | |
| //   - Lists are equal if they are the same length and
 | |
| //     each corresponding element is equal.
 | |
| //
 | |
| //   - Maps are equal if they have the same set of keys and
 | |
| //     the corresponding value for each key is equal.
 | |
| //
 | |
| // An invalid message is not equal to a valid message.
 | |
| // An invalid message is only equal to another invalid message of the
 | |
| // same type. An invalid message often corresponds to a nil pointer
 | |
| // of the concrete message type. For example, (*pb.M)(nil) is not equal
 | |
| // to &pb.M{}.
 | |
| // If two valid messages marshal to the same bytes under deterministic
 | |
| // serialization, then Equal is guaranteed to report true.
 | |
| func Equal(x, y Message) bool {
 | |
| 	if x == nil || y == nil {
 | |
| 		return x == nil && y == nil
 | |
| 	}
 | |
| 	if reflect.TypeOf(x).Kind() == reflect.Ptr && x == y {
 | |
| 		// Avoid an expensive comparison if both inputs are identical pointers.
 | |
| 		return true
 | |
| 	}
 | |
| 	mx := x.ProtoReflect()
 | |
| 	my := y.ProtoReflect()
 | |
| 	if mx.IsValid() != my.IsValid() {
 | |
| 		return false
 | |
| 	}
 | |
| 
 | |
| 	// Only one of the messages needs to implement the fast-path for it to work.
 | |
| 	pmx := protoMethods(mx)
 | |
| 	pmy := protoMethods(my)
 | |
| 	if pmx != nil && pmy != nil && pmx.Equal != nil && pmy.Equal != nil {
 | |
| 		return pmx.Equal(protoiface.EqualInput{MessageA: mx, MessageB: my}).Equal
 | |
| 	}
 | |
| 
 | |
| 	vx := protoreflect.ValueOfMessage(mx)
 | |
| 	vy := protoreflect.ValueOfMessage(my)
 | |
| 	return vx.Equal(vy)
 | |
| }
 |