feat: implement copilot mode
This commit is contained in:
		
							
								
								
									
										64
									
								
								vendor/github.com/cyrilix/robocar-protobuf/go/events/events.pb.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										64
									
								
								vendor/github.com/cyrilix/robocar-protobuf/go/events/events.pb.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,15 +1,15 @@
 | 
			
		||||
// Code generated by protoc-gen-go. DO NOT EDIT.
 | 
			
		||||
// versions:
 | 
			
		||||
// 	protoc-gen-go v1.28.1
 | 
			
		||||
// 	protoc        v3.21.4
 | 
			
		||||
// 	protoc-gen-go v1.31.0
 | 
			
		||||
// 	protoc        v3.21.12
 | 
			
		||||
// source: events/events.proto
 | 
			
		||||
 | 
			
		||||
package events
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
 | 
			
		||||
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
 | 
			
		||||
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
 | 
			
		||||
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
 | 
			
		||||
	reflect "reflect"
 | 
			
		||||
	sync "sync"
 | 
			
		||||
)
 | 
			
		||||
@@ -79,6 +79,7 @@ const (
 | 
			
		||||
	DriveMode_INVALID DriveMode = 0
 | 
			
		||||
	DriveMode_USER    DriveMode = 1
 | 
			
		||||
	DriveMode_PILOT   DriveMode = 2
 | 
			
		||||
	DriveMode_COPILOT DriveMode = 3
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Enum value maps for DriveMode.
 | 
			
		||||
@@ -87,11 +88,13 @@ var (
 | 
			
		||||
		0: "INVALID",
 | 
			
		||||
		1: "USER",
 | 
			
		||||
		2: "PILOT",
 | 
			
		||||
		3: "COPILOT",
 | 
			
		||||
	}
 | 
			
		||||
	DriveMode_value = map[string]int32{
 | 
			
		||||
		"INVALID": 0,
 | 
			
		||||
		"USER":    1,
 | 
			
		||||
		"PILOT":   2,
 | 
			
		||||
		"COPILOT": 3,
 | 
			
		||||
	}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -179,9 +182,9 @@ type FrameRef struct {
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	Name      string               `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 | 
			
		||||
	Id        string               `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
 | 
			
		||||
	CreatedAt *timestamp.Timestamp `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
 | 
			
		||||
	Name      string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 | 
			
		||||
	Id        string                 `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
 | 
			
		||||
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FrameRef) Reset() {
 | 
			
		||||
@@ -230,7 +233,7 @@ func (x *FrameRef) GetId() string {
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FrameRef) GetCreatedAt() *timestamp.Timestamp {
 | 
			
		||||
func (x *FrameRef) GetCreatedAt() *timestamppb.Timestamp {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.CreatedAt
 | 
			
		||||
	}
 | 
			
		||||
@@ -1114,14 +1117,15 @@ var file_events_events_proto_rawDesc = []byte{
 | 
			
		||||
	0x38, 0x0a, 0x09, 0x53, 0x70, 0x65, 0x65, 0x64, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x0b, 0x0a, 0x07,
 | 
			
		||||
	0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x4c, 0x4f,
 | 
			
		||||
	0x57, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x02, 0x12,
 | 
			
		||||
	0x08, 0x0a, 0x04, 0x46, 0x41, 0x53, 0x54, 0x10, 0x03, 0x2a, 0x2d, 0x0a, 0x09, 0x44, 0x72, 0x69,
 | 
			
		||||
	0x08, 0x0a, 0x04, 0x46, 0x41, 0x53, 0x54, 0x10, 0x03, 0x2a, 0x3a, 0x0a, 0x09, 0x44, 0x72, 0x69,
 | 
			
		||||
	0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49,
 | 
			
		||||
	0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45, 0x52, 0x10, 0x01, 0x12, 0x09, 0x0a,
 | 
			
		||||
	0x05, 0x50, 0x49, 0x4c, 0x4f, 0x54, 0x10, 0x02, 0x2a, 0x32, 0x0a, 0x0a, 0x54, 0x79, 0x70, 0x65,
 | 
			
		||||
	0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x59, 0x10, 0x00, 0x12,
 | 
			
		||||
	0x07, 0x0a, 0x03, 0x43, 0x41, 0x52, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x55, 0x4d, 0x50,
 | 
			
		||||
	0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x4c, 0x4f, 0x54, 0x10, 0x03, 0x42, 0x0a, 0x5a, 0x08,
 | 
			
		||||
	0x2e, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
	0x05, 0x50, 0x49, 0x4c, 0x4f, 0x54, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x50, 0x49,
 | 
			
		||||
	0x4c, 0x4f, 0x54, 0x10, 0x03, 0x2a, 0x32, 0x0a, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x4f, 0x62, 0x6a,
 | 
			
		||||
	0x65, 0x63, 0x74, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x59, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03,
 | 
			
		||||
	0x43, 0x41, 0x52, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x55, 0x4d, 0x50, 0x10, 0x02, 0x12,
 | 
			
		||||
	0x08, 0x0a, 0x04, 0x50, 0x4c, 0x4f, 0x54, 0x10, 0x03, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x65,
 | 
			
		||||
	0x76, 0x65, 0x6e, 0x74, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
@@ -1139,23 +1143,23 @@ func file_events_events_proto_rawDescGZIP() []byte {
 | 
			
		||||
var file_events_events_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
 | 
			
		||||
var file_events_events_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
 | 
			
		||||
var file_events_events_proto_goTypes = []interface{}{
 | 
			
		||||
	(SpeedZone)(0),              // 0: robocar.events.SpeedZone
 | 
			
		||||
	(DriveMode)(0),              // 1: robocar.events.DriveMode
 | 
			
		||||
	(TypeObject)(0),             // 2: robocar.events.TypeObject
 | 
			
		||||
	(*FrameRef)(nil),            // 3: robocar.events.FrameRef
 | 
			
		||||
	(*FrameMessage)(nil),        // 4: robocar.events.FrameMessage
 | 
			
		||||
	(*SteeringMessage)(nil),     // 5: robocar.events.SteeringMessage
 | 
			
		||||
	(*ThrottleMessage)(nil),     // 6: robocar.events.ThrottleMessage
 | 
			
		||||
	(*SpeedZoneMessage)(nil),    // 7: robocar.events.SpeedZoneMessage
 | 
			
		||||
	(*DriveModeMessage)(nil),    // 8: robocar.events.DriveModeMessage
 | 
			
		||||
	(*ObjectsMessage)(nil),      // 9: robocar.events.ObjectsMessage
 | 
			
		||||
	(*Object)(nil),              // 10: robocar.events.Object
 | 
			
		||||
	(*SwitchRecordMessage)(nil), // 11: robocar.events.SwitchRecordMessage
 | 
			
		||||
	(*RoadMessage)(nil),         // 12: robocar.events.RoadMessage
 | 
			
		||||
	(*Point)(nil),               // 13: robocar.events.Point
 | 
			
		||||
	(*Ellipse)(nil),             // 14: robocar.events.Ellipse
 | 
			
		||||
	(*RecordMessage)(nil),       // 15: robocar.events.RecordMessage
 | 
			
		||||
	(*timestamp.Timestamp)(nil), // 16: google.protobuf.Timestamp
 | 
			
		||||
	(SpeedZone)(0),                // 0: robocar.events.SpeedZone
 | 
			
		||||
	(DriveMode)(0),                // 1: robocar.events.DriveMode
 | 
			
		||||
	(TypeObject)(0),               // 2: robocar.events.TypeObject
 | 
			
		||||
	(*FrameRef)(nil),              // 3: robocar.events.FrameRef
 | 
			
		||||
	(*FrameMessage)(nil),          // 4: robocar.events.FrameMessage
 | 
			
		||||
	(*SteeringMessage)(nil),       // 5: robocar.events.SteeringMessage
 | 
			
		||||
	(*ThrottleMessage)(nil),       // 6: robocar.events.ThrottleMessage
 | 
			
		||||
	(*SpeedZoneMessage)(nil),      // 7: robocar.events.SpeedZoneMessage
 | 
			
		||||
	(*DriveModeMessage)(nil),      // 8: robocar.events.DriveModeMessage
 | 
			
		||||
	(*ObjectsMessage)(nil),        // 9: robocar.events.ObjectsMessage
 | 
			
		||||
	(*Object)(nil),                // 10: robocar.events.Object
 | 
			
		||||
	(*SwitchRecordMessage)(nil),   // 11: robocar.events.SwitchRecordMessage
 | 
			
		||||
	(*RoadMessage)(nil),           // 12: robocar.events.RoadMessage
 | 
			
		||||
	(*Point)(nil),                 // 13: robocar.events.Point
 | 
			
		||||
	(*Ellipse)(nil),               // 14: robocar.events.Ellipse
 | 
			
		||||
	(*RecordMessage)(nil),         // 15: robocar.events.RecordMessage
 | 
			
		||||
	(*timestamppb.Timestamp)(nil), // 16: google.protobuf.Timestamp
 | 
			
		||||
}
 | 
			
		||||
var file_events_events_proto_depIdxs = []int32{
 | 
			
		||||
	16, // 0: robocar.events.FrameRef.created_at:type_name -> google.protobuf.Timestamp
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								vendor/github.com/golang/protobuf/AUTHORS
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/golang/protobuf/AUTHORS
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,3 +0,0 @@
 | 
			
		||||
# This source code refers to The Go Authors for copyright purposes.
 | 
			
		||||
# The master list of authors is in the main Go distribution,
 | 
			
		||||
# visible at http://tip.golang.org/AUTHORS.
 | 
			
		||||
							
								
								
									
										3
									
								
								vendor/github.com/golang/protobuf/CONTRIBUTORS
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/golang/protobuf/CONTRIBUTORS
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,3 +0,0 @@
 | 
			
		||||
# This source code was written by the Go contributors.
 | 
			
		||||
# The master list of contributors is in the main Go distribution,
 | 
			
		||||
# visible at http://tip.golang.org/CONTRIBUTORS.
 | 
			
		||||
							
								
								
									
										28
									
								
								vendor/github.com/golang/protobuf/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								vendor/github.com/golang/protobuf/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,28 +0,0 @@
 | 
			
		||||
Copyright 2010 The Go Authors.  All rights reserved.
 | 
			
		||||
 | 
			
		||||
Redistribution and use in source and binary forms, with or without
 | 
			
		||||
modification, are permitted provided that the following conditions are
 | 
			
		||||
met:
 | 
			
		||||
 | 
			
		||||
    * Redistributions of source code must retain the above copyright
 | 
			
		||||
notice, this list of conditions and the following disclaimer.
 | 
			
		||||
    * Redistributions in binary form must reproduce the above
 | 
			
		||||
copyright notice, this list of conditions and the following disclaimer
 | 
			
		||||
in the documentation and/or other materials provided with the
 | 
			
		||||
distribution.
 | 
			
		||||
    * Neither the name of Google Inc. nor the names of its
 | 
			
		||||
contributors may be used to endorse or promote products derived from
 | 
			
		||||
this software without specific prior written permission.
 | 
			
		||||
 | 
			
		||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 | 
			
		||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 | 
			
		||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 | 
			
		||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 | 
			
		||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 | 
			
		||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 | 
			
		||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 | 
			
		||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 | 
			
		||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
			
		||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										64
									
								
								vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										64
									
								
								vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,64 +0,0 @@
 | 
			
		||||
// Code generated by protoc-gen-go. DO NOT EDIT.
 | 
			
		||||
// source: github.com/golang/protobuf/ptypes/timestamp/timestamp.proto
 | 
			
		||||
 | 
			
		||||
package timestamp
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
 | 
			
		||||
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
 | 
			
		||||
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
 | 
			
		||||
	reflect "reflect"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Symbols defined in public import of google/protobuf/timestamp.proto.
 | 
			
		||||
 | 
			
		||||
type Timestamp = timestamppb.Timestamp
 | 
			
		||||
 | 
			
		||||
var File_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto protoreflect.FileDescriptor
 | 
			
		||||
 | 
			
		||||
var file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_rawDesc = []byte{
 | 
			
		||||
	0x0a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c,
 | 
			
		||||
	0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79,
 | 
			
		||||
	0x70, 0x65, 0x73, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2f, 0x74, 0x69,
 | 
			
		||||
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67,
 | 
			
		||||
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74,
 | 
			
		||||
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x37,
 | 
			
		||||
	0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c,
 | 
			
		||||
	0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79,
 | 
			
		||||
	0x70, 0x65, 0x73, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x3b, 0x74, 0x69,
 | 
			
		||||
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
 | 
			
		||||
	0x33,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_goTypes = []interface{}{}
 | 
			
		||||
var file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_depIdxs = []int32{
 | 
			
		||||
	0, // [0:0] is the sub-list for method output_type
 | 
			
		||||
	0, // [0:0] is the sub-list for method input_type
 | 
			
		||||
	0, // [0:0] is the sub-list for extension type_name
 | 
			
		||||
	0, // [0:0] is the sub-list for extension extendee
 | 
			
		||||
	0, // [0:0] is the sub-list for field type_name
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func init() { file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_init() }
 | 
			
		||||
func file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_init() {
 | 
			
		||||
	if File_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	type x struct{}
 | 
			
		||||
	out := protoimpl.TypeBuilder{
 | 
			
		||||
		File: protoimpl.DescBuilder{
 | 
			
		||||
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 | 
			
		||||
			RawDescriptor: file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_rawDesc,
 | 
			
		||||
			NumEnums:      0,
 | 
			
		||||
			NumMessages:   0,
 | 
			
		||||
			NumExtensions: 0,
 | 
			
		||||
			NumServices:   0,
 | 
			
		||||
		},
 | 
			
		||||
		GoTypes:           file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_goTypes,
 | 
			
		||||
		DependencyIndexes: file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_depIdxs,
 | 
			
		||||
	}.Build()
 | 
			
		||||
	File_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto = out.File
 | 
			
		||||
	file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_rawDesc = nil
 | 
			
		||||
	file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_goTypes = nil
 | 
			
		||||
	file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_depIdxs = nil
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								vendor/google.golang.org/protobuf/encoding/prototext/encode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/google.golang.org/protobuf/encoding/prototext/encode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -101,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 == "" {
 | 
			
		||||
@@ -117,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
 | 
			
		||||
	}
 | 
			
		||||
@@ -125,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}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/google.golang.org/protobuf/encoding/protowire/wire.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								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.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/google.golang.org/protobuf/internal/encoding/text/decode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/google.golang.org/protobuf/internal/encoding/text/decode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -412,12 +412,13 @@ func (d *Decoder) parseFieldName() (tok Token, err error) {
 | 
			
		||||
	// Field number. Identify if input is a valid number that is not negative
 | 
			
		||||
	// and is decimal integer within 32-bit range.
 | 
			
		||||
	if num := parseNumber(d.in); num.size > 0 {
 | 
			
		||||
		str := num.string(d.in)
 | 
			
		||||
		if !num.neg && num.kind == numDec {
 | 
			
		||||
			if _, err := strconv.ParseInt(string(d.in[:num.size]), 10, 32); err == nil {
 | 
			
		||||
			if _, err := strconv.ParseInt(str, 10, 32); err == nil {
 | 
			
		||||
				return d.consumeToken(Name, num.size, uint8(FieldNumber)), nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return Token{}, d.newSyntaxError("invalid field number: %s", d.in[:num.size])
 | 
			
		||||
		return Token{}, d.newSyntaxError("invalid field number: %s", str)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return Token{}, d.newSyntaxError("invalid field name: %s", errId(d.in))
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										43
									
								
								vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										43
									
								
								vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -15,17 +15,12 @@ func (d *Decoder) parseNumberValue() (Token, bool) {
 | 
			
		||||
	if num.neg {
 | 
			
		||||
		numAttrs |= isNegative
 | 
			
		||||
	}
 | 
			
		||||
	strSize := num.size
 | 
			
		||||
	last := num.size - 1
 | 
			
		||||
	if num.kind == numFloat && (d.in[last] == 'f' || d.in[last] == 'F') {
 | 
			
		||||
		strSize = last
 | 
			
		||||
	}
 | 
			
		||||
	tok := Token{
 | 
			
		||||
		kind:     Scalar,
 | 
			
		||||
		attrs:    numberValue,
 | 
			
		||||
		pos:      len(d.orig) - len(d.in),
 | 
			
		||||
		raw:      d.in[:num.size],
 | 
			
		||||
		str:      string(d.in[:strSize]),
 | 
			
		||||
		str:      num.string(d.in),
 | 
			
		||||
		numAttrs: numAttrs,
 | 
			
		||||
	}
 | 
			
		||||
	d.consume(num.size)
 | 
			
		||||
@@ -46,6 +41,27 @@ type number struct {
 | 
			
		||||
	kind uint8
 | 
			
		||||
	neg  bool
 | 
			
		||||
	size int
 | 
			
		||||
	// if neg, this is the length of whitespace and comments between
 | 
			
		||||
	// the minus sign and the rest fo the number literal
 | 
			
		||||
	sep int
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (num number) string(data []byte) string {
 | 
			
		||||
	strSize := num.size
 | 
			
		||||
	last := num.size - 1
 | 
			
		||||
	if num.kind == numFloat && (data[last] == 'f' || data[last] == 'F') {
 | 
			
		||||
		strSize = last
 | 
			
		||||
	}
 | 
			
		||||
	if num.neg && num.sep > 0 {
 | 
			
		||||
		// strip whitespace/comments between negative sign and the rest
 | 
			
		||||
		strLen := strSize - num.sep
 | 
			
		||||
		str := make([]byte, strLen)
 | 
			
		||||
		str[0] = data[0]
 | 
			
		||||
		copy(str[1:], data[num.sep+1:strSize])
 | 
			
		||||
		return string(str)
 | 
			
		||||
	}
 | 
			
		||||
	return string(data[:strSize])
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// parseNumber constructs a number object from given input. It allows for the
 | 
			
		||||
@@ -67,19 +83,22 @@ func parseNumber(input []byte) number {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Optional -
 | 
			
		||||
	var sep int
 | 
			
		||||
	if s[0] == '-' {
 | 
			
		||||
		neg = true
 | 
			
		||||
		s = s[1:]
 | 
			
		||||
		size++
 | 
			
		||||
		// Consume any whitespace or comments between the
 | 
			
		||||
		// negative sign and the rest of the number
 | 
			
		||||
		lenBefore := len(s)
 | 
			
		||||
		s = consume(s, 0)
 | 
			
		||||
		sep = lenBefore - len(s)
 | 
			
		||||
		size += sep
 | 
			
		||||
		if len(s) == 0 {
 | 
			
		||||
			return number{}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// C++ allows for whitespace and comments in between the negative sign and
 | 
			
		||||
	// the rest of the number. This logic currently does not but is consistent
 | 
			
		||||
	// with v1.
 | 
			
		||||
 | 
			
		||||
	switch {
 | 
			
		||||
	case s[0] == '0':
 | 
			
		||||
		if len(s) > 1 {
 | 
			
		||||
@@ -116,7 +135,7 @@ func parseNumber(input []byte) number {
 | 
			
		||||
				if len(s) > 0 && !isDelim(s[0]) {
 | 
			
		||||
					return number{}
 | 
			
		||||
				}
 | 
			
		||||
				return number{kind: kind, neg: neg, size: size}
 | 
			
		||||
				return number{kind: kind, neg: neg, size: size, sep: sep}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		s = s[1:]
 | 
			
		||||
@@ -188,5 +207,5 @@ func parseNumber(input []byte) number {
 | 
			
		||||
		return number{}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return number{kind: kind, neg: neg, size: size}
 | 
			
		||||
	return number{kind: kind, neg: neg, size: size, sep: sep}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								vendor/google.golang.org/protobuf/internal/encoding/text/encode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/google.golang.org/protobuf/internal/encoding/text/encode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -53,8 +53,10 @@ type encoderState struct {
 | 
			
		||||
// If outputASCII is true, strings will be serialized in such a way that
 | 
			
		||||
// multi-byte UTF-8 sequences are escaped. This property ensures that the
 | 
			
		||||
// overall output is ASCII (as opposed to UTF-8).
 | 
			
		||||
func NewEncoder(indent string, delims [2]byte, outputASCII bool) (*Encoder, error) {
 | 
			
		||||
	e := &Encoder{}
 | 
			
		||||
func NewEncoder(buf []byte, indent string, delims [2]byte, outputASCII bool) (*Encoder, error) {
 | 
			
		||||
	e := &Encoder{
 | 
			
		||||
		encoderState: encoderState{out: buf},
 | 
			
		||||
	}
 | 
			
		||||
	if len(indent) > 0 {
 | 
			
		||||
		if strings.Trim(indent, " \t") != "" {
 | 
			
		||||
			return nil, errors.New("indent may only be composed of space and tab characters")
 | 
			
		||||
@@ -195,13 +197,13 @@ func appendFloat(out []byte, n float64, bitSize int) []byte {
 | 
			
		||||
// WriteInt writes out the given signed integer value.
 | 
			
		||||
func (e *Encoder) WriteInt(n int64) {
 | 
			
		||||
	e.prepareNext(scalar)
 | 
			
		||||
	e.out = append(e.out, strconv.FormatInt(n, 10)...)
 | 
			
		||||
	e.out = strconv.AppendInt(e.out, n, 10)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// WriteUint writes out the given unsigned integer value.
 | 
			
		||||
func (e *Encoder) WriteUint(n uint64) {
 | 
			
		||||
	e.prepareNext(scalar)
 | 
			
		||||
	e.out = append(e.out, strconv.FormatUint(n, 10)...)
 | 
			
		||||
	e.out = strconv.AppendUint(e.out, n, 10)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// WriteLiteral writes out the given string as a literal value without quotes.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										138
									
								
								vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										138
									
								
								vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -50,6 +50,7 @@ const (
 | 
			
		||||
	FileDescriptorProto_Options_field_name          protoreflect.Name = "options"
 | 
			
		||||
	FileDescriptorProto_SourceCodeInfo_field_name   protoreflect.Name = "source_code_info"
 | 
			
		||||
	FileDescriptorProto_Syntax_field_name           protoreflect.Name = "syntax"
 | 
			
		||||
	FileDescriptorProto_Edition_field_name          protoreflect.Name = "edition"
 | 
			
		||||
 | 
			
		||||
	FileDescriptorProto_Name_field_fullname             protoreflect.FullName = "google.protobuf.FileDescriptorProto.name"
 | 
			
		||||
	FileDescriptorProto_Package_field_fullname          protoreflect.FullName = "google.protobuf.FileDescriptorProto.package"
 | 
			
		||||
@@ -63,6 +64,7 @@ const (
 | 
			
		||||
	FileDescriptorProto_Options_field_fullname          protoreflect.FullName = "google.protobuf.FileDescriptorProto.options"
 | 
			
		||||
	FileDescriptorProto_SourceCodeInfo_field_fullname   protoreflect.FullName = "google.protobuf.FileDescriptorProto.source_code_info"
 | 
			
		||||
	FileDescriptorProto_Syntax_field_fullname           protoreflect.FullName = "google.protobuf.FileDescriptorProto.syntax"
 | 
			
		||||
	FileDescriptorProto_Edition_field_fullname          protoreflect.FullName = "google.protobuf.FileDescriptorProto.edition"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Field numbers for google.protobuf.FileDescriptorProto.
 | 
			
		||||
@@ -79,6 +81,7 @@ const (
 | 
			
		||||
	FileDescriptorProto_Options_field_number          protoreflect.FieldNumber = 8
 | 
			
		||||
	FileDescriptorProto_SourceCodeInfo_field_number   protoreflect.FieldNumber = 9
 | 
			
		||||
	FileDescriptorProto_Syntax_field_number           protoreflect.FieldNumber = 12
 | 
			
		||||
	FileDescriptorProto_Edition_field_number          protoreflect.FieldNumber = 13
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Names for google.protobuf.DescriptorProto.
 | 
			
		||||
@@ -180,13 +183,58 @@ const (
 | 
			
		||||
// Field names for google.protobuf.ExtensionRangeOptions.
 | 
			
		||||
const (
 | 
			
		||||
	ExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option"
 | 
			
		||||
	ExtensionRangeOptions_Declaration_field_name         protoreflect.Name = "declaration"
 | 
			
		||||
	ExtensionRangeOptions_Verification_field_name        protoreflect.Name = "verification"
 | 
			
		||||
 | 
			
		||||
	ExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.uninterpreted_option"
 | 
			
		||||
	ExtensionRangeOptions_Declaration_field_fullname         protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.declaration"
 | 
			
		||||
	ExtensionRangeOptions_Verification_field_fullname        protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.verification"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Field numbers for google.protobuf.ExtensionRangeOptions.
 | 
			
		||||
const (
 | 
			
		||||
	ExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999
 | 
			
		||||
	ExtensionRangeOptions_Declaration_field_number         protoreflect.FieldNumber = 2
 | 
			
		||||
	ExtensionRangeOptions_Verification_field_number        protoreflect.FieldNumber = 3
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Full and short names for google.protobuf.ExtensionRangeOptions.VerificationState.
 | 
			
		||||
const (
 | 
			
		||||
	ExtensionRangeOptions_VerificationState_enum_fullname = "google.protobuf.ExtensionRangeOptions.VerificationState"
 | 
			
		||||
	ExtensionRangeOptions_VerificationState_enum_name     = "VerificationState"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Names for google.protobuf.ExtensionRangeOptions.Declaration.
 | 
			
		||||
const (
 | 
			
		||||
	ExtensionRangeOptions_Declaration_message_name     protoreflect.Name     = "Declaration"
 | 
			
		||||
	ExtensionRangeOptions_Declaration_message_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Field names for google.protobuf.ExtensionRangeOptions.Declaration.
 | 
			
		||||
const (
 | 
			
		||||
	ExtensionRangeOptions_Declaration_Number_field_name     protoreflect.Name = "number"
 | 
			
		||||
	ExtensionRangeOptions_Declaration_FullName_field_name   protoreflect.Name = "full_name"
 | 
			
		||||
	ExtensionRangeOptions_Declaration_Type_field_name       protoreflect.Name = "type"
 | 
			
		||||
	ExtensionRangeOptions_Declaration_IsRepeated_field_name protoreflect.Name = "is_repeated"
 | 
			
		||||
	ExtensionRangeOptions_Declaration_Reserved_field_name   protoreflect.Name = "reserved"
 | 
			
		||||
	ExtensionRangeOptions_Declaration_Repeated_field_name   protoreflect.Name = "repeated"
 | 
			
		||||
 | 
			
		||||
	ExtensionRangeOptions_Declaration_Number_field_fullname     protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number"
 | 
			
		||||
	ExtensionRangeOptions_Declaration_FullName_field_fullname   protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name"
 | 
			
		||||
	ExtensionRangeOptions_Declaration_Type_field_fullname       protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type"
 | 
			
		||||
	ExtensionRangeOptions_Declaration_IsRepeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.is_repeated"
 | 
			
		||||
	ExtensionRangeOptions_Declaration_Reserved_field_fullname   protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved"
 | 
			
		||||
	ExtensionRangeOptions_Declaration_Repeated_field_fullname   protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Field numbers for google.protobuf.ExtensionRangeOptions.Declaration.
 | 
			
		||||
const (
 | 
			
		||||
	ExtensionRangeOptions_Declaration_Number_field_number     protoreflect.FieldNumber = 1
 | 
			
		||||
	ExtensionRangeOptions_Declaration_FullName_field_number   protoreflect.FieldNumber = 2
 | 
			
		||||
	ExtensionRangeOptions_Declaration_Type_field_number       protoreflect.FieldNumber = 3
 | 
			
		||||
	ExtensionRangeOptions_Declaration_IsRepeated_field_number protoreflect.FieldNumber = 4
 | 
			
		||||
	ExtensionRangeOptions_Declaration_Reserved_field_number   protoreflect.FieldNumber = 5
 | 
			
		||||
	ExtensionRangeOptions_Declaration_Repeated_field_number   protoreflect.FieldNumber = 6
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Names for google.protobuf.FieldDescriptorProto.
 | 
			
		||||
@@ -494,26 +542,29 @@ const (
 | 
			
		||||
 | 
			
		||||
// Field names for google.protobuf.MessageOptions.
 | 
			
		||||
const (
 | 
			
		||||
	MessageOptions_MessageSetWireFormat_field_name         protoreflect.Name = "message_set_wire_format"
 | 
			
		||||
	MessageOptions_NoStandardDescriptorAccessor_field_name protoreflect.Name = "no_standard_descriptor_accessor"
 | 
			
		||||
	MessageOptions_Deprecated_field_name                   protoreflect.Name = "deprecated"
 | 
			
		||||
	MessageOptions_MapEntry_field_name                     protoreflect.Name = "map_entry"
 | 
			
		||||
	MessageOptions_UninterpretedOption_field_name          protoreflect.Name = "uninterpreted_option"
 | 
			
		||||
	MessageOptions_MessageSetWireFormat_field_name               protoreflect.Name = "message_set_wire_format"
 | 
			
		||||
	MessageOptions_NoStandardDescriptorAccessor_field_name       protoreflect.Name = "no_standard_descriptor_accessor"
 | 
			
		||||
	MessageOptions_Deprecated_field_name                         protoreflect.Name = "deprecated"
 | 
			
		||||
	MessageOptions_MapEntry_field_name                           protoreflect.Name = "map_entry"
 | 
			
		||||
	MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts"
 | 
			
		||||
	MessageOptions_UninterpretedOption_field_name                protoreflect.Name = "uninterpreted_option"
 | 
			
		||||
 | 
			
		||||
	MessageOptions_MessageSetWireFormat_field_fullname         protoreflect.FullName = "google.protobuf.MessageOptions.message_set_wire_format"
 | 
			
		||||
	MessageOptions_NoStandardDescriptorAccessor_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.no_standard_descriptor_accessor"
 | 
			
		||||
	MessageOptions_Deprecated_field_fullname                   protoreflect.FullName = "google.protobuf.MessageOptions.deprecated"
 | 
			
		||||
	MessageOptions_MapEntry_field_fullname                     protoreflect.FullName = "google.protobuf.MessageOptions.map_entry"
 | 
			
		||||
	MessageOptions_UninterpretedOption_field_fullname          protoreflect.FullName = "google.protobuf.MessageOptions.uninterpreted_option"
 | 
			
		||||
	MessageOptions_MessageSetWireFormat_field_fullname               protoreflect.FullName = "google.protobuf.MessageOptions.message_set_wire_format"
 | 
			
		||||
	MessageOptions_NoStandardDescriptorAccessor_field_fullname       protoreflect.FullName = "google.protobuf.MessageOptions.no_standard_descriptor_accessor"
 | 
			
		||||
	MessageOptions_Deprecated_field_fullname                         protoreflect.FullName = "google.protobuf.MessageOptions.deprecated"
 | 
			
		||||
	MessageOptions_MapEntry_field_fullname                           protoreflect.FullName = "google.protobuf.MessageOptions.map_entry"
 | 
			
		||||
	MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated_legacy_json_field_conflicts"
 | 
			
		||||
	MessageOptions_UninterpretedOption_field_fullname                protoreflect.FullName = "google.protobuf.MessageOptions.uninterpreted_option"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Field numbers for google.protobuf.MessageOptions.
 | 
			
		||||
const (
 | 
			
		||||
	MessageOptions_MessageSetWireFormat_field_number         protoreflect.FieldNumber = 1
 | 
			
		||||
	MessageOptions_NoStandardDescriptorAccessor_field_number protoreflect.FieldNumber = 2
 | 
			
		||||
	MessageOptions_Deprecated_field_number                   protoreflect.FieldNumber = 3
 | 
			
		||||
	MessageOptions_MapEntry_field_number                     protoreflect.FieldNumber = 7
 | 
			
		||||
	MessageOptions_UninterpretedOption_field_number          protoreflect.FieldNumber = 999
 | 
			
		||||
	MessageOptions_MessageSetWireFormat_field_number               protoreflect.FieldNumber = 1
 | 
			
		||||
	MessageOptions_NoStandardDescriptorAccessor_field_number       protoreflect.FieldNumber = 2
 | 
			
		||||
	MessageOptions_Deprecated_field_number                         protoreflect.FieldNumber = 3
 | 
			
		||||
	MessageOptions_MapEntry_field_number                           protoreflect.FieldNumber = 7
 | 
			
		||||
	MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 11
 | 
			
		||||
	MessageOptions_UninterpretedOption_field_number                protoreflect.FieldNumber = 999
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Names for google.protobuf.FieldOptions.
 | 
			
		||||
@@ -528,16 +579,26 @@ const (
 | 
			
		||||
	FieldOptions_Packed_field_name              protoreflect.Name = "packed"
 | 
			
		||||
	FieldOptions_Jstype_field_name              protoreflect.Name = "jstype"
 | 
			
		||||
	FieldOptions_Lazy_field_name                protoreflect.Name = "lazy"
 | 
			
		||||
	FieldOptions_UnverifiedLazy_field_name      protoreflect.Name = "unverified_lazy"
 | 
			
		||||
	FieldOptions_Deprecated_field_name          protoreflect.Name = "deprecated"
 | 
			
		||||
	FieldOptions_Weak_field_name                protoreflect.Name = "weak"
 | 
			
		||||
	FieldOptions_DebugRedact_field_name         protoreflect.Name = "debug_redact"
 | 
			
		||||
	FieldOptions_Retention_field_name           protoreflect.Name = "retention"
 | 
			
		||||
	FieldOptions_Target_field_name              protoreflect.Name = "target"
 | 
			
		||||
	FieldOptions_Targets_field_name             protoreflect.Name = "targets"
 | 
			
		||||
	FieldOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option"
 | 
			
		||||
 | 
			
		||||
	FieldOptions_Ctype_field_fullname               protoreflect.FullName = "google.protobuf.FieldOptions.ctype"
 | 
			
		||||
	FieldOptions_Packed_field_fullname              protoreflect.FullName = "google.protobuf.FieldOptions.packed"
 | 
			
		||||
	FieldOptions_Jstype_field_fullname              protoreflect.FullName = "google.protobuf.FieldOptions.jstype"
 | 
			
		||||
	FieldOptions_Lazy_field_fullname                protoreflect.FullName = "google.protobuf.FieldOptions.lazy"
 | 
			
		||||
	FieldOptions_UnverifiedLazy_field_fullname      protoreflect.FullName = "google.protobuf.FieldOptions.unverified_lazy"
 | 
			
		||||
	FieldOptions_Deprecated_field_fullname          protoreflect.FullName = "google.protobuf.FieldOptions.deprecated"
 | 
			
		||||
	FieldOptions_Weak_field_fullname                protoreflect.FullName = "google.protobuf.FieldOptions.weak"
 | 
			
		||||
	FieldOptions_DebugRedact_field_fullname         protoreflect.FullName = "google.protobuf.FieldOptions.debug_redact"
 | 
			
		||||
	FieldOptions_Retention_field_fullname           protoreflect.FullName = "google.protobuf.FieldOptions.retention"
 | 
			
		||||
	FieldOptions_Target_field_fullname              protoreflect.FullName = "google.protobuf.FieldOptions.target"
 | 
			
		||||
	FieldOptions_Targets_field_fullname             protoreflect.FullName = "google.protobuf.FieldOptions.targets"
 | 
			
		||||
	FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -547,8 +608,13 @@ const (
 | 
			
		||||
	FieldOptions_Packed_field_number              protoreflect.FieldNumber = 2
 | 
			
		||||
	FieldOptions_Jstype_field_number              protoreflect.FieldNumber = 6
 | 
			
		||||
	FieldOptions_Lazy_field_number                protoreflect.FieldNumber = 5
 | 
			
		||||
	FieldOptions_UnverifiedLazy_field_number      protoreflect.FieldNumber = 15
 | 
			
		||||
	FieldOptions_Deprecated_field_number          protoreflect.FieldNumber = 3
 | 
			
		||||
	FieldOptions_Weak_field_number                protoreflect.FieldNumber = 10
 | 
			
		||||
	FieldOptions_DebugRedact_field_number         protoreflect.FieldNumber = 16
 | 
			
		||||
	FieldOptions_Retention_field_number           protoreflect.FieldNumber = 17
 | 
			
		||||
	FieldOptions_Target_field_number              protoreflect.FieldNumber = 18
 | 
			
		||||
	FieldOptions_Targets_field_number             protoreflect.FieldNumber = 19
 | 
			
		||||
	FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -564,6 +630,18 @@ const (
 | 
			
		||||
	FieldOptions_JSType_enum_name     = "JSType"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Full and short names for google.protobuf.FieldOptions.OptionRetention.
 | 
			
		||||
const (
 | 
			
		||||
	FieldOptions_OptionRetention_enum_fullname = "google.protobuf.FieldOptions.OptionRetention"
 | 
			
		||||
	FieldOptions_OptionRetention_enum_name     = "OptionRetention"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Full and short names for google.protobuf.FieldOptions.OptionTargetType.
 | 
			
		||||
const (
 | 
			
		||||
	FieldOptions_OptionTargetType_enum_fullname = "google.protobuf.FieldOptions.OptionTargetType"
 | 
			
		||||
	FieldOptions_OptionTargetType_enum_name     = "OptionTargetType"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Names for google.protobuf.OneofOptions.
 | 
			
		||||
const (
 | 
			
		||||
	OneofOptions_message_name     protoreflect.Name     = "OneofOptions"
 | 
			
		||||
@@ -590,20 +668,23 @@ const (
 | 
			
		||||
 | 
			
		||||
// Field names for google.protobuf.EnumOptions.
 | 
			
		||||
const (
 | 
			
		||||
	EnumOptions_AllowAlias_field_name          protoreflect.Name = "allow_alias"
 | 
			
		||||
	EnumOptions_Deprecated_field_name          protoreflect.Name = "deprecated"
 | 
			
		||||
	EnumOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option"
 | 
			
		||||
	EnumOptions_AllowAlias_field_name                         protoreflect.Name = "allow_alias"
 | 
			
		||||
	EnumOptions_Deprecated_field_name                         protoreflect.Name = "deprecated"
 | 
			
		||||
	EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts"
 | 
			
		||||
	EnumOptions_UninterpretedOption_field_name                protoreflect.Name = "uninterpreted_option"
 | 
			
		||||
 | 
			
		||||
	EnumOptions_AllowAlias_field_fullname          protoreflect.FullName = "google.protobuf.EnumOptions.allow_alias"
 | 
			
		||||
	EnumOptions_Deprecated_field_fullname          protoreflect.FullName = "google.protobuf.EnumOptions.deprecated"
 | 
			
		||||
	EnumOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.uninterpreted_option"
 | 
			
		||||
	EnumOptions_AllowAlias_field_fullname                         protoreflect.FullName = "google.protobuf.EnumOptions.allow_alias"
 | 
			
		||||
	EnumOptions_Deprecated_field_fullname                         protoreflect.FullName = "google.protobuf.EnumOptions.deprecated"
 | 
			
		||||
	EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated_legacy_json_field_conflicts"
 | 
			
		||||
	EnumOptions_UninterpretedOption_field_fullname                protoreflect.FullName = "google.protobuf.EnumOptions.uninterpreted_option"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Field numbers for google.protobuf.EnumOptions.
 | 
			
		||||
const (
 | 
			
		||||
	EnumOptions_AllowAlias_field_number          protoreflect.FieldNumber = 2
 | 
			
		||||
	EnumOptions_Deprecated_field_number          protoreflect.FieldNumber = 3
 | 
			
		||||
	EnumOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999
 | 
			
		||||
	EnumOptions_AllowAlias_field_number                         protoreflect.FieldNumber = 2
 | 
			
		||||
	EnumOptions_Deprecated_field_number                         protoreflect.FieldNumber = 3
 | 
			
		||||
	EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 6
 | 
			
		||||
	EnumOptions_UninterpretedOption_field_number                protoreflect.FieldNumber = 999
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Names for google.protobuf.EnumValueOptions.
 | 
			
		||||
@@ -813,11 +894,13 @@ const (
 | 
			
		||||
	GeneratedCodeInfo_Annotation_SourceFile_field_name protoreflect.Name = "source_file"
 | 
			
		||||
	GeneratedCodeInfo_Annotation_Begin_field_name      protoreflect.Name = "begin"
 | 
			
		||||
	GeneratedCodeInfo_Annotation_End_field_name        protoreflect.Name = "end"
 | 
			
		||||
	GeneratedCodeInfo_Annotation_Semantic_field_name   protoreflect.Name = "semantic"
 | 
			
		||||
 | 
			
		||||
	GeneratedCodeInfo_Annotation_Path_field_fullname       protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.path"
 | 
			
		||||
	GeneratedCodeInfo_Annotation_SourceFile_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.source_file"
 | 
			
		||||
	GeneratedCodeInfo_Annotation_Begin_field_fullname      protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.begin"
 | 
			
		||||
	GeneratedCodeInfo_Annotation_End_field_fullname        protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.end"
 | 
			
		||||
	GeneratedCodeInfo_Annotation_Semantic_field_fullname   protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.semantic"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Field numbers for google.protobuf.GeneratedCodeInfo.Annotation.
 | 
			
		||||
@@ -826,4 +909,11 @@ const (
 | 
			
		||||
	GeneratedCodeInfo_Annotation_SourceFile_field_number protoreflect.FieldNumber = 2
 | 
			
		||||
	GeneratedCodeInfo_Annotation_Begin_field_number      protoreflect.FieldNumber = 3
 | 
			
		||||
	GeneratedCodeInfo_Annotation_End_field_number        protoreflect.FieldNumber = 4
 | 
			
		||||
	GeneratedCodeInfo_Annotation_Semantic_field_number   protoreflect.FieldNumber = 5
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Full and short names for google.protobuf.GeneratedCodeInfo.Annotation.Semantic.
 | 
			
		||||
const (
 | 
			
		||||
	GeneratedCodeInfo_Annotation_Semantic_enum_fullname = "google.protobuf.GeneratedCodeInfo.Annotation.Semantic"
 | 
			
		||||
	GeneratedCodeInfo_Annotation_Semantic_enum_name     = "Semantic"
 | 
			
		||||
)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/google.golang.org/protobuf/internal/genid/type_gen.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/google.golang.org/protobuf/internal/genid/type_gen.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -32,6 +32,7 @@ const (
 | 
			
		||||
	Type_Options_field_name       protoreflect.Name = "options"
 | 
			
		||||
	Type_SourceContext_field_name protoreflect.Name = "source_context"
 | 
			
		||||
	Type_Syntax_field_name        protoreflect.Name = "syntax"
 | 
			
		||||
	Type_Edition_field_name       protoreflect.Name = "edition"
 | 
			
		||||
 | 
			
		||||
	Type_Name_field_fullname          protoreflect.FullName = "google.protobuf.Type.name"
 | 
			
		||||
	Type_Fields_field_fullname        protoreflect.FullName = "google.protobuf.Type.fields"
 | 
			
		||||
@@ -39,6 +40,7 @@ const (
 | 
			
		||||
	Type_Options_field_fullname       protoreflect.FullName = "google.protobuf.Type.options"
 | 
			
		||||
	Type_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Type.source_context"
 | 
			
		||||
	Type_Syntax_field_fullname        protoreflect.FullName = "google.protobuf.Type.syntax"
 | 
			
		||||
	Type_Edition_field_fullname       protoreflect.FullName = "google.protobuf.Type.edition"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Field numbers for google.protobuf.Type.
 | 
			
		||||
@@ -49,6 +51,7 @@ const (
 | 
			
		||||
	Type_Options_field_number       protoreflect.FieldNumber = 4
 | 
			
		||||
	Type_SourceContext_field_number protoreflect.FieldNumber = 5
 | 
			
		||||
	Type_Syntax_field_number        protoreflect.FieldNumber = 6
 | 
			
		||||
	Type_Edition_field_number       protoreflect.FieldNumber = 7
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Names for google.protobuf.Field.
 | 
			
		||||
@@ -121,12 +124,14 @@ const (
 | 
			
		||||
	Enum_Options_field_name       protoreflect.Name = "options"
 | 
			
		||||
	Enum_SourceContext_field_name protoreflect.Name = "source_context"
 | 
			
		||||
	Enum_Syntax_field_name        protoreflect.Name = "syntax"
 | 
			
		||||
	Enum_Edition_field_name       protoreflect.Name = "edition"
 | 
			
		||||
 | 
			
		||||
	Enum_Name_field_fullname          protoreflect.FullName = "google.protobuf.Enum.name"
 | 
			
		||||
	Enum_Enumvalue_field_fullname     protoreflect.FullName = "google.protobuf.Enum.enumvalue"
 | 
			
		||||
	Enum_Options_field_fullname       protoreflect.FullName = "google.protobuf.Enum.options"
 | 
			
		||||
	Enum_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Enum.source_context"
 | 
			
		||||
	Enum_Syntax_field_fullname        protoreflect.FullName = "google.protobuf.Enum.syntax"
 | 
			
		||||
	Enum_Edition_field_fullname       protoreflect.FullName = "google.protobuf.Enum.edition"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Field numbers for google.protobuf.Enum.
 | 
			
		||||
@@ -136,6 +141,7 @@ const (
 | 
			
		||||
	Enum_Options_field_number       protoreflect.FieldNumber = 3
 | 
			
		||||
	Enum_SourceContext_field_number protoreflect.FieldNumber = 4
 | 
			
		||||
	Enum_Syntax_field_number        protoreflect.FieldNumber = 5
 | 
			
		||||
	Enum_Edition_field_number       protoreflect.FieldNumber = 6
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Names for google.protobuf.EnumValue.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								vendor/google.golang.org/protobuf/internal/impl/convert.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/google.golang.org/protobuf/internal/impl/convert.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -59,7 +59,6 @@ func NewConverter(t reflect.Type, fd protoreflect.FieldDescriptor) Converter {
 | 
			
		||||
	default:
 | 
			
		||||
		return newSingularConverter(t, fd)
 | 
			
		||||
	}
 | 
			
		||||
	panic(fmt.Sprintf("invalid Go type %v for field %v", t, fd.FullName()))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/google.golang.org/protobuf/internal/order/order.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/google.golang.org/protobuf/internal/order/order.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -33,7 +33,7 @@ var (
 | 
			
		||||
			return !inOneof(ox) && inOneof(oy)
 | 
			
		||||
		}
 | 
			
		||||
		// Fields in disjoint oneof sets are sorted by declaration index.
 | 
			
		||||
		if ox != nil && oy != nil && ox != oy {
 | 
			
		||||
		if inOneof(ox) && inOneof(oy) && ox != oy {
 | 
			
		||||
			return ox.Index() < oy.Index()
 | 
			
		||||
		}
 | 
			
		||||
		// Fields sorted by field number.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -87,7 +87,7 @@ func (sb *Builder) grow(n int) {
 | 
			
		||||
	// Unlike strings.Builder, we do not need to copy over the contents
 | 
			
		||||
	// of the old buffer since our builder provides no API for
 | 
			
		||||
	// retrieving previously created strings.
 | 
			
		||||
	sb.buf = make([]byte, 2*(cap(sb.buf)+n))
 | 
			
		||||
	sb.buf = make([]byte, 0, 2*(cap(sb.buf)+n))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (sb *Builder) last(n int) string {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/google.golang.org/protobuf/internal/version/version.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/google.golang.org/protobuf/internal/version/version.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -51,8 +51,8 @@ import (
 | 
			
		||||
//  10. Send out the CL for review and submit it.
 | 
			
		||||
const (
 | 
			
		||||
	Major      = 1
 | 
			
		||||
	Minor      = 28
 | 
			
		||||
	Patch      = 1
 | 
			
		||||
	Minor      = 31
 | 
			
		||||
	Patch      = 0
 | 
			
		||||
	PreRelease = ""
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								vendor/google.golang.org/protobuf/proto/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/google.golang.org/protobuf/proto/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -5,16 +5,13 @@
 | 
			
		||||
// Package proto provides functions operating on protocol buffer messages.
 | 
			
		||||
//
 | 
			
		||||
// For documentation on protocol buffers in general, see:
 | 
			
		||||
//
 | 
			
		||||
//	https://developers.google.com/protocol-buffers
 | 
			
		||||
// https://protobuf.dev.
 | 
			
		||||
//
 | 
			
		||||
// For a tutorial on using protocol buffers with Go, see:
 | 
			
		||||
//
 | 
			
		||||
//	https://developers.google.com/protocol-buffers/docs/gotutorial
 | 
			
		||||
// https://protobuf.dev/getting-started/gotutorial.
 | 
			
		||||
//
 | 
			
		||||
// For a guide to generated Go protocol buffer code, see:
 | 
			
		||||
//
 | 
			
		||||
//	https://developers.google.com/protocol-buffers/docs/reference/go-generated
 | 
			
		||||
// https://protobuf.dev/reference/go/go-generated.
 | 
			
		||||
//
 | 
			
		||||
// # Binary serialization
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										172
									
								
								vendor/google.golang.org/protobuf/proto/equal.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										172
									
								
								vendor/google.golang.org/protobuf/proto/equal.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -5,30 +5,39 @@
 | 
			
		||||
package proto
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"math"
 | 
			
		||||
	"reflect"
 | 
			
		||||
 | 
			
		||||
	"google.golang.org/protobuf/encoding/protowire"
 | 
			
		||||
	"google.golang.org/protobuf/reflect/protoreflect"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Equal reports whether two messages are equal.
 | 
			
		||||
// If two messages marshal to the same bytes under deterministic serialization,
 | 
			
		||||
// then Equal is guaranteed to report true.
 | 
			
		||||
// Equal reports whether two messages are equal,
 | 
			
		||||
// by recursively comparing the fields of the message.
 | 
			
		||||
//
 | 
			
		||||
// Two messages are equal if they belong to the same message descriptor,
 | 
			
		||||
// have the same set of populated known and extension field values,
 | 
			
		||||
// and the same set of unknown fields values. If either of the top-level
 | 
			
		||||
// messages are invalid, then Equal reports true only if both are invalid.
 | 
			
		||||
//   - Bytes fields are equal if they contain identical bytes.
 | 
			
		||||
//     Empty bytes (regardless of nil-ness) are considered equal.
 | 
			
		||||
//
 | 
			
		||||
// Scalar values are compared with the equivalent of the == operator in Go,
 | 
			
		||||
// except bytes values which are compared using bytes.Equal and
 | 
			
		||||
// floating point values which specially treat NaNs as equal.
 | 
			
		||||
// Message values are compared by recursively calling Equal.
 | 
			
		||||
// Lists are equal if each element value is also equal.
 | 
			
		||||
// Maps are equal if they have the same set of keys, where the pair of values
 | 
			
		||||
// for each key is also 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
 | 
			
		||||
@@ -42,130 +51,7 @@ func Equal(x, y Message) bool {
 | 
			
		||||
	if mx.IsValid() != my.IsValid() {
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
	return equalMessage(mx, my)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// equalMessage compares two messages.
 | 
			
		||||
func equalMessage(mx, my protoreflect.Message) bool {
 | 
			
		||||
	if mx.Descriptor() != my.Descriptor() {
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	nx := 0
 | 
			
		||||
	equal := true
 | 
			
		||||
	mx.Range(func(fd protoreflect.FieldDescriptor, vx protoreflect.Value) bool {
 | 
			
		||||
		nx++
 | 
			
		||||
		vy := my.Get(fd)
 | 
			
		||||
		equal = my.Has(fd) && equalField(fd, vx, vy)
 | 
			
		||||
		return equal
 | 
			
		||||
	})
 | 
			
		||||
	if !equal {
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
	ny := 0
 | 
			
		||||
	my.Range(func(fd protoreflect.FieldDescriptor, vx protoreflect.Value) bool {
 | 
			
		||||
		ny++
 | 
			
		||||
		return true
 | 
			
		||||
	})
 | 
			
		||||
	if nx != ny {
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return equalUnknown(mx.GetUnknown(), my.GetUnknown())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// equalField compares two fields.
 | 
			
		||||
func equalField(fd protoreflect.FieldDescriptor, x, y protoreflect.Value) bool {
 | 
			
		||||
	switch {
 | 
			
		||||
	case fd.IsList():
 | 
			
		||||
		return equalList(fd, x.List(), y.List())
 | 
			
		||||
	case fd.IsMap():
 | 
			
		||||
		return equalMap(fd, x.Map(), y.Map())
 | 
			
		||||
	default:
 | 
			
		||||
		return equalValue(fd, x, y)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// equalMap compares two maps.
 | 
			
		||||
func equalMap(fd protoreflect.FieldDescriptor, x, y protoreflect.Map) bool {
 | 
			
		||||
	if x.Len() != y.Len() {
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
	equal := true
 | 
			
		||||
	x.Range(func(k protoreflect.MapKey, vx protoreflect.Value) bool {
 | 
			
		||||
		vy := y.Get(k)
 | 
			
		||||
		equal = y.Has(k) && equalValue(fd.MapValue(), vx, vy)
 | 
			
		||||
		return equal
 | 
			
		||||
	})
 | 
			
		||||
	return equal
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// equalList compares two lists.
 | 
			
		||||
func equalList(fd protoreflect.FieldDescriptor, x, y protoreflect.List) bool {
 | 
			
		||||
	if x.Len() != y.Len() {
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
	for i := x.Len() - 1; i >= 0; i-- {
 | 
			
		||||
		if !equalValue(fd, x.Get(i), y.Get(i)) {
 | 
			
		||||
			return false
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// equalValue compares two singular values.
 | 
			
		||||
func equalValue(fd protoreflect.FieldDescriptor, x, y protoreflect.Value) bool {
 | 
			
		||||
	switch fd.Kind() {
 | 
			
		||||
	case protoreflect.BoolKind:
 | 
			
		||||
		return x.Bool() == y.Bool()
 | 
			
		||||
	case protoreflect.EnumKind:
 | 
			
		||||
		return x.Enum() == y.Enum()
 | 
			
		||||
	case protoreflect.Int32Kind, protoreflect.Sint32Kind,
 | 
			
		||||
		protoreflect.Int64Kind, protoreflect.Sint64Kind,
 | 
			
		||||
		protoreflect.Sfixed32Kind, protoreflect.Sfixed64Kind:
 | 
			
		||||
		return x.Int() == y.Int()
 | 
			
		||||
	case protoreflect.Uint32Kind, protoreflect.Uint64Kind,
 | 
			
		||||
		protoreflect.Fixed32Kind, protoreflect.Fixed64Kind:
 | 
			
		||||
		return x.Uint() == y.Uint()
 | 
			
		||||
	case protoreflect.FloatKind, protoreflect.DoubleKind:
 | 
			
		||||
		fx := x.Float()
 | 
			
		||||
		fy := y.Float()
 | 
			
		||||
		if math.IsNaN(fx) || math.IsNaN(fy) {
 | 
			
		||||
			return math.IsNaN(fx) && math.IsNaN(fy)
 | 
			
		||||
		}
 | 
			
		||||
		return fx == fy
 | 
			
		||||
	case protoreflect.StringKind:
 | 
			
		||||
		return x.String() == y.String()
 | 
			
		||||
	case protoreflect.BytesKind:
 | 
			
		||||
		return bytes.Equal(x.Bytes(), y.Bytes())
 | 
			
		||||
	case protoreflect.MessageKind, protoreflect.GroupKind:
 | 
			
		||||
		return equalMessage(x.Message(), y.Message())
 | 
			
		||||
	default:
 | 
			
		||||
		return x.Interface() == y.Interface()
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// equalUnknown compares unknown fields by direct comparison on the raw bytes
 | 
			
		||||
// of each individual field number.
 | 
			
		||||
func equalUnknown(x, y protoreflect.RawFields) bool {
 | 
			
		||||
	if len(x) != len(y) {
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
	if bytes.Equal([]byte(x), []byte(y)) {
 | 
			
		||||
		return true
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	mx := make(map[protoreflect.FieldNumber]protoreflect.RawFields)
 | 
			
		||||
	my := make(map[protoreflect.FieldNumber]protoreflect.RawFields)
 | 
			
		||||
	for len(x) > 0 {
 | 
			
		||||
		fnum, _, n := protowire.ConsumeField(x)
 | 
			
		||||
		mx[fnum] = append(mx[fnum], x[:n]...)
 | 
			
		||||
		x = x[n:]
 | 
			
		||||
	}
 | 
			
		||||
	for len(y) > 0 {
 | 
			
		||||
		fnum, _, n := protowire.ConsumeField(y)
 | 
			
		||||
		my[fnum] = append(my[fnum], y[:n]...)
 | 
			
		||||
		y = y[n:]
 | 
			
		||||
	}
 | 
			
		||||
	return reflect.DeepEqual(mx, my)
 | 
			
		||||
	vx := protoreflect.ValueOfMessage(mx)
 | 
			
		||||
	vy := protoreflect.ValueOfMessage(my)
 | 
			
		||||
	return vx.Equal(vy)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								vendor/google.golang.org/protobuf/proto/size.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/google.golang.org/protobuf/proto/size.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -73,23 +73,27 @@ func (o MarshalOptions) sizeField(fd protoreflect.FieldDescriptor, value protore
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (o MarshalOptions) sizeList(num protowire.Number, fd protoreflect.FieldDescriptor, list protoreflect.List) (size int) {
 | 
			
		||||
	sizeTag := protowire.SizeTag(num)
 | 
			
		||||
 | 
			
		||||
	if fd.IsPacked() && list.Len() > 0 {
 | 
			
		||||
		content := 0
 | 
			
		||||
		for i, llen := 0, list.Len(); i < llen; i++ {
 | 
			
		||||
			content += o.sizeSingular(num, fd.Kind(), list.Get(i))
 | 
			
		||||
		}
 | 
			
		||||
		return protowire.SizeTag(num) + protowire.SizeBytes(content)
 | 
			
		||||
		return sizeTag + protowire.SizeBytes(content)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for i, llen := 0, list.Len(); i < llen; i++ {
 | 
			
		||||
		size += protowire.SizeTag(num) + o.sizeSingular(num, fd.Kind(), list.Get(i))
 | 
			
		||||
		size += sizeTag + o.sizeSingular(num, fd.Kind(), list.Get(i))
 | 
			
		||||
	}
 | 
			
		||||
	return size
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (o MarshalOptions) sizeMap(num protowire.Number, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) (size int) {
 | 
			
		||||
	sizeTag := protowire.SizeTag(num)
 | 
			
		||||
 | 
			
		||||
	mapv.Range(func(key protoreflect.MapKey, value protoreflect.Value) bool {
 | 
			
		||||
		size += protowire.SizeTag(num)
 | 
			
		||||
		size += sizeTag
 | 
			
		||||
		size += protowire.SizeBytes(o.sizeField(fd.MapKey(), key.Value()) + o.sizeField(fd.MapValue(), value))
 | 
			
		||||
		return true
 | 
			
		||||
	})
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										41
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										41
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -35,6 +35,8 @@ func (p *SourcePath) appendFileDescriptorProto(b []byte) []byte {
 | 
			
		||||
		b = p.appendSingularField(b, "source_code_info", (*SourcePath).appendSourceCodeInfo)
 | 
			
		||||
	case 12:
 | 
			
		||||
		b = p.appendSingularField(b, "syntax", nil)
 | 
			
		||||
	case 13:
 | 
			
		||||
		b = p.appendSingularField(b, "edition", nil)
 | 
			
		||||
	}
 | 
			
		||||
	return b
 | 
			
		||||
}
 | 
			
		||||
@@ -236,6 +238,8 @@ func (p *SourcePath) appendMessageOptions(b []byte) []byte {
 | 
			
		||||
		b = p.appendSingularField(b, "deprecated", nil)
 | 
			
		||||
	case 7:
 | 
			
		||||
		b = p.appendSingularField(b, "map_entry", nil)
 | 
			
		||||
	case 11:
 | 
			
		||||
		b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil)
 | 
			
		||||
	case 999:
 | 
			
		||||
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
 | 
			
		||||
	}
 | 
			
		||||
@@ -279,6 +283,8 @@ func (p *SourcePath) appendEnumOptions(b []byte) []byte {
 | 
			
		||||
		b = p.appendSingularField(b, "allow_alias", nil)
 | 
			
		||||
	case 3:
 | 
			
		||||
		b = p.appendSingularField(b, "deprecated", nil)
 | 
			
		||||
	case 6:
 | 
			
		||||
		b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil)
 | 
			
		||||
	case 999:
 | 
			
		||||
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
 | 
			
		||||
	}
 | 
			
		||||
@@ -345,10 +351,20 @@ func (p *SourcePath) appendFieldOptions(b []byte) []byte {
 | 
			
		||||
		b = p.appendSingularField(b, "jstype", nil)
 | 
			
		||||
	case 5:
 | 
			
		||||
		b = p.appendSingularField(b, "lazy", nil)
 | 
			
		||||
	case 15:
 | 
			
		||||
		b = p.appendSingularField(b, "unverified_lazy", nil)
 | 
			
		||||
	case 3:
 | 
			
		||||
		b = p.appendSingularField(b, "deprecated", nil)
 | 
			
		||||
	case 10:
 | 
			
		||||
		b = p.appendSingularField(b, "weak", nil)
 | 
			
		||||
	case 16:
 | 
			
		||||
		b = p.appendSingularField(b, "debug_redact", nil)
 | 
			
		||||
	case 17:
 | 
			
		||||
		b = p.appendSingularField(b, "retention", nil)
 | 
			
		||||
	case 18:
 | 
			
		||||
		b = p.appendSingularField(b, "target", nil)
 | 
			
		||||
	case 19:
 | 
			
		||||
		b = p.appendRepeatedField(b, "targets", nil)
 | 
			
		||||
	case 999:
 | 
			
		||||
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
 | 
			
		||||
	}
 | 
			
		||||
@@ -404,6 +420,10 @@ func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte {
 | 
			
		||||
	switch (*p)[0] {
 | 
			
		||||
	case 999:
 | 
			
		||||
		b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
 | 
			
		||||
	case 2:
 | 
			
		||||
		b = p.appendRepeatedField(b, "declaration", (*SourcePath).appendExtensionRangeOptions_Declaration)
 | 
			
		||||
	case 3:
 | 
			
		||||
		b = p.appendSingularField(b, "verification", nil)
 | 
			
		||||
	}
 | 
			
		||||
	return b
 | 
			
		||||
}
 | 
			
		||||
@@ -459,3 +479,24 @@ func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte {
 | 
			
		||||
	}
 | 
			
		||||
	return b
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *SourcePath) appendExtensionRangeOptions_Declaration(b []byte) []byte {
 | 
			
		||||
	if len(*p) == 0 {
 | 
			
		||||
		return b
 | 
			
		||||
	}
 | 
			
		||||
	switch (*p)[0] {
 | 
			
		||||
	case 1:
 | 
			
		||||
		b = p.appendSingularField(b, "number", nil)
 | 
			
		||||
	case 2:
 | 
			
		||||
		b = p.appendSingularField(b, "full_name", nil)
 | 
			
		||||
	case 3:
 | 
			
		||||
		b = p.appendSingularField(b, "type", nil)
 | 
			
		||||
	case 4:
 | 
			
		||||
		b = p.appendSingularField(b, "is_repeated", nil)
 | 
			
		||||
	case 5:
 | 
			
		||||
		b = p.appendSingularField(b, "reserved", nil)
 | 
			
		||||
	case 6:
 | 
			
		||||
		b = p.appendSingularField(b, "repeated", nil)
 | 
			
		||||
	}
 | 
			
		||||
	return b
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/value.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/value.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -148,7 +148,7 @@ type Message interface {
 | 
			
		||||
	// be preserved in marshaling or other operations.
 | 
			
		||||
	IsValid() bool
 | 
			
		||||
 | 
			
		||||
	// ProtoMethods returns optional fast-path implementions of various operations.
 | 
			
		||||
	// ProtoMethods returns optional fast-path implementations of various operations.
 | 
			
		||||
	// This method may return nil.
 | 
			
		||||
	//
 | 
			
		||||
	// The returned methods type is identical to
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										168
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										168
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,168 @@
 | 
			
		||||
// Copyright 2022 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 protoreflect
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"math"
 | 
			
		||||
	"reflect"
 | 
			
		||||
 | 
			
		||||
	"google.golang.org/protobuf/encoding/protowire"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Equal reports whether v1 and v2 are recursively equal.
 | 
			
		||||
//
 | 
			
		||||
//   - Values of different types are always unequal.
 | 
			
		||||
//
 | 
			
		||||
//   - Bytes values are equal if they contain identical bytes.
 | 
			
		||||
//     Empty bytes (regardless of nil-ness) are considered equal.
 | 
			
		||||
//
 | 
			
		||||
//   - Floating point values are equal if they contain the same value.
 | 
			
		||||
//     Unlike the == operator, a NaN is equal to another NaN.
 | 
			
		||||
//
 | 
			
		||||
//   - Enums are equal if they contain the same number.
 | 
			
		||||
//     Since Value does not contain an enum descriptor,
 | 
			
		||||
//     enum values do not consider the type of the enum.
 | 
			
		||||
//
 | 
			
		||||
//   - Other scalar values are equal if they contain the same value.
 | 
			
		||||
//
 | 
			
		||||
//   - Message values are equal if they belong to the same message descriptor,
 | 
			
		||||
//     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.
 | 
			
		||||
func (v1 Value) Equal(v2 Value) bool {
 | 
			
		||||
	return equalValue(v1, v2)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func equalValue(x, y Value) bool {
 | 
			
		||||
	eqType := x.typ == y.typ
 | 
			
		||||
	switch x.typ {
 | 
			
		||||
	case nilType:
 | 
			
		||||
		return eqType
 | 
			
		||||
	case boolType:
 | 
			
		||||
		return eqType && x.Bool() == y.Bool()
 | 
			
		||||
	case int32Type, int64Type:
 | 
			
		||||
		return eqType && x.Int() == y.Int()
 | 
			
		||||
	case uint32Type, uint64Type:
 | 
			
		||||
		return eqType && x.Uint() == y.Uint()
 | 
			
		||||
	case float32Type, float64Type:
 | 
			
		||||
		return eqType && equalFloat(x.Float(), y.Float())
 | 
			
		||||
	case stringType:
 | 
			
		||||
		return eqType && x.String() == y.String()
 | 
			
		||||
	case bytesType:
 | 
			
		||||
		return eqType && bytes.Equal(x.Bytes(), y.Bytes())
 | 
			
		||||
	case enumType:
 | 
			
		||||
		return eqType && x.Enum() == y.Enum()
 | 
			
		||||
	default:
 | 
			
		||||
		switch x := x.Interface().(type) {
 | 
			
		||||
		case Message:
 | 
			
		||||
			y, ok := y.Interface().(Message)
 | 
			
		||||
			return ok && equalMessage(x, y)
 | 
			
		||||
		case List:
 | 
			
		||||
			y, ok := y.Interface().(List)
 | 
			
		||||
			return ok && equalList(x, y)
 | 
			
		||||
		case Map:
 | 
			
		||||
			y, ok := y.Interface().(Map)
 | 
			
		||||
			return ok && equalMap(x, y)
 | 
			
		||||
		default:
 | 
			
		||||
			panic(fmt.Sprintf("unknown type: %T", x))
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// equalFloat compares two floats, where NaNs are treated as equal.
 | 
			
		||||
func equalFloat(x, y float64) bool {
 | 
			
		||||
	if math.IsNaN(x) || math.IsNaN(y) {
 | 
			
		||||
		return math.IsNaN(x) && math.IsNaN(y)
 | 
			
		||||
	}
 | 
			
		||||
	return x == y
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// equalMessage compares two messages.
 | 
			
		||||
func equalMessage(mx, my Message) bool {
 | 
			
		||||
	if mx.Descriptor() != my.Descriptor() {
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	nx := 0
 | 
			
		||||
	equal := true
 | 
			
		||||
	mx.Range(func(fd FieldDescriptor, vx Value) bool {
 | 
			
		||||
		nx++
 | 
			
		||||
		vy := my.Get(fd)
 | 
			
		||||
		equal = my.Has(fd) && equalValue(vx, vy)
 | 
			
		||||
		return equal
 | 
			
		||||
	})
 | 
			
		||||
	if !equal {
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
	ny := 0
 | 
			
		||||
	my.Range(func(fd FieldDescriptor, vx Value) bool {
 | 
			
		||||
		ny++
 | 
			
		||||
		return true
 | 
			
		||||
	})
 | 
			
		||||
	if nx != ny {
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return equalUnknown(mx.GetUnknown(), my.GetUnknown())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// equalList compares two lists.
 | 
			
		||||
func equalList(x, y List) bool {
 | 
			
		||||
	if x.Len() != y.Len() {
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
	for i := x.Len() - 1; i >= 0; i-- {
 | 
			
		||||
		if !equalValue(x.Get(i), y.Get(i)) {
 | 
			
		||||
			return false
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// equalMap compares two maps.
 | 
			
		||||
func equalMap(x, y Map) bool {
 | 
			
		||||
	if x.Len() != y.Len() {
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
	equal := true
 | 
			
		||||
	x.Range(func(k MapKey, vx Value) bool {
 | 
			
		||||
		vy := y.Get(k)
 | 
			
		||||
		equal = y.Has(k) && equalValue(vx, vy)
 | 
			
		||||
		return equal
 | 
			
		||||
	})
 | 
			
		||||
	return equal
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// equalUnknown compares unknown fields by direct comparison on the raw bytes
 | 
			
		||||
// of each individual field number.
 | 
			
		||||
func equalUnknown(x, y RawFields) bool {
 | 
			
		||||
	if len(x) != len(y) {
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
	if bytes.Equal([]byte(x), []byte(y)) {
 | 
			
		||||
		return true
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	mx := make(map[FieldNumber]RawFields)
 | 
			
		||||
	my := make(map[FieldNumber]RawFields)
 | 
			
		||||
	for len(x) > 0 {
 | 
			
		||||
		fnum, _, n := protowire.ConsumeField(x)
 | 
			
		||||
		mx[fnum] = append(mx[fnum], x[:n]...)
 | 
			
		||||
		x = x[n:]
 | 
			
		||||
	}
 | 
			
		||||
	for len(y) > 0 {
 | 
			
		||||
		fnum, _, n := protowire.ConsumeField(y)
 | 
			
		||||
		my[fnum] = append(my[fnum], y[:n]...)
 | 
			
		||||
		y = y[n:]
 | 
			
		||||
	}
 | 
			
		||||
	return reflect.DeepEqual(mx, my)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -54,11 +54,11 @@ import (
 | 
			
		||||
//	// Append a 0 to a "repeated int32" field.
 | 
			
		||||
//	// Since the Value returned by Mutable is guaranteed to alias
 | 
			
		||||
//	// the source message, modifying the Value modifies the message.
 | 
			
		||||
//	message.Mutable(fieldDesc).(List).Append(protoreflect.ValueOfInt32(0))
 | 
			
		||||
//	message.Mutable(fieldDesc).List().Append(protoreflect.ValueOfInt32(0))
 | 
			
		||||
//
 | 
			
		||||
//	// Assign [0] to a "repeated int32" field by creating a new Value,
 | 
			
		||||
//	// modifying it, and assigning it.
 | 
			
		||||
//	list := message.NewField(fieldDesc).(List)
 | 
			
		||||
//	list := message.NewField(fieldDesc).List()
 | 
			
		||||
//	list.Append(protoreflect.ValueOfInt32(0))
 | 
			
		||||
//	message.Set(fieldDesc, list)
 | 
			
		||||
//	// ERROR: Since it is not defined whether Set aliases the source,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -46,7 +46,7 @@ var conflictPolicy = "panic" // "panic" | "warn" | "ignore"
 | 
			
		||||
// It is a variable so that the behavior is easily overridden in another file.
 | 
			
		||||
var ignoreConflict = func(d protoreflect.Descriptor, err error) bool {
 | 
			
		||||
	const env = "GOLANG_PROTOBUF_REGISTRATION_CONFLICT"
 | 
			
		||||
	const faq = "https://developers.google.com/protocol-buffers/docs/reference/go/faq#namespace-conflict"
 | 
			
		||||
	const faq = "https://protobuf.dev/reference/go/faq#namespace-conflict"
 | 
			
		||||
	policy := conflictPolicy
 | 
			
		||||
	if v := os.Getenv(env); v != "" {
 | 
			
		||||
		policy = v
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										63
									
								
								vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										63
									
								
								vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -36,8 +36,7 @@
 | 
			
		||||
// The Timestamp message represents a timestamp,
 | 
			
		||||
// an instant in time since the Unix epoch (January 1st, 1970).
 | 
			
		||||
//
 | 
			
		||||
//
 | 
			
		||||
// Conversion to a Go Time
 | 
			
		||||
// # Conversion to a Go Time
 | 
			
		||||
//
 | 
			
		||||
// The AsTime method can be used to convert a Timestamp message to a
 | 
			
		||||
// standard Go time.Time value in UTC:
 | 
			
		||||
@@ -59,8 +58,7 @@
 | 
			
		||||
//		... // handle error
 | 
			
		||||
//	}
 | 
			
		||||
//
 | 
			
		||||
//
 | 
			
		||||
// Conversion from a Go Time
 | 
			
		||||
// # Conversion from a Go Time
 | 
			
		||||
//
 | 
			
		||||
// The timestamppb.New function can be used to construct a Timestamp message
 | 
			
		||||
// from a standard Go time.Time value:
 | 
			
		||||
@@ -72,7 +70,6 @@
 | 
			
		||||
//
 | 
			
		||||
//	ts := timestamppb.Now()
 | 
			
		||||
//	... // make use of ts as a *timestamppb.Timestamp
 | 
			
		||||
//
 | 
			
		||||
package timestamppb
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
@@ -101,52 +98,50 @@ import (
 | 
			
		||||
//
 | 
			
		||||
// Example 1: Compute Timestamp from POSIX `time()`.
 | 
			
		||||
//
 | 
			
		||||
//     Timestamp timestamp;
 | 
			
		||||
//     timestamp.set_seconds(time(NULL));
 | 
			
		||||
//     timestamp.set_nanos(0);
 | 
			
		||||
//	Timestamp timestamp;
 | 
			
		||||
//	timestamp.set_seconds(time(NULL));
 | 
			
		||||
//	timestamp.set_nanos(0);
 | 
			
		||||
//
 | 
			
		||||
// Example 2: Compute Timestamp from POSIX `gettimeofday()`.
 | 
			
		||||
//
 | 
			
		||||
//     struct timeval tv;
 | 
			
		||||
//     gettimeofday(&tv, NULL);
 | 
			
		||||
//	struct timeval tv;
 | 
			
		||||
//	gettimeofday(&tv, NULL);
 | 
			
		||||
//
 | 
			
		||||
//     Timestamp timestamp;
 | 
			
		||||
//     timestamp.set_seconds(tv.tv_sec);
 | 
			
		||||
//     timestamp.set_nanos(tv.tv_usec * 1000);
 | 
			
		||||
//	Timestamp timestamp;
 | 
			
		||||
//	timestamp.set_seconds(tv.tv_sec);
 | 
			
		||||
//	timestamp.set_nanos(tv.tv_usec * 1000);
 | 
			
		||||
//
 | 
			
		||||
// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
 | 
			
		||||
//
 | 
			
		||||
//     FILETIME ft;
 | 
			
		||||
//     GetSystemTimeAsFileTime(&ft);
 | 
			
		||||
//     UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
 | 
			
		||||
//	FILETIME ft;
 | 
			
		||||
//	GetSystemTimeAsFileTime(&ft);
 | 
			
		||||
//	UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
 | 
			
		||||
//
 | 
			
		||||
//     // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
 | 
			
		||||
//     // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
 | 
			
		||||
//     Timestamp timestamp;
 | 
			
		||||
//     timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
 | 
			
		||||
//     timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
 | 
			
		||||
//	// A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
 | 
			
		||||
//	// is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
 | 
			
		||||
//	Timestamp timestamp;
 | 
			
		||||
//	timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
 | 
			
		||||
//	timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
 | 
			
		||||
//
 | 
			
		||||
// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
 | 
			
		||||
//
 | 
			
		||||
//     long millis = System.currentTimeMillis();
 | 
			
		||||
//
 | 
			
		||||
//     Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
 | 
			
		||||
//         .setNanos((int) ((millis % 1000) * 1000000)).build();
 | 
			
		||||
//	long millis = System.currentTimeMillis();
 | 
			
		||||
//
 | 
			
		||||
//	Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
 | 
			
		||||
//	    .setNanos((int) ((millis % 1000) * 1000000)).build();
 | 
			
		||||
//
 | 
			
		||||
// Example 5: Compute Timestamp from Java `Instant.now()`.
 | 
			
		||||
//
 | 
			
		||||
//     Instant now = Instant.now();
 | 
			
		||||
//
 | 
			
		||||
//     Timestamp timestamp =
 | 
			
		||||
//         Timestamp.newBuilder().setSeconds(now.getEpochSecond())
 | 
			
		||||
//             .setNanos(now.getNano()).build();
 | 
			
		||||
//	Instant now = Instant.now();
 | 
			
		||||
//
 | 
			
		||||
//	Timestamp timestamp =
 | 
			
		||||
//	    Timestamp.newBuilder().setSeconds(now.getEpochSecond())
 | 
			
		||||
//	        .setNanos(now.getNano()).build();
 | 
			
		||||
//
 | 
			
		||||
// Example 6: Compute Timestamp from current time in Python.
 | 
			
		||||
//
 | 
			
		||||
//     timestamp = Timestamp()
 | 
			
		||||
//     timestamp.GetCurrentTime()
 | 
			
		||||
//	timestamp = Timestamp()
 | 
			
		||||
//	timestamp.GetCurrentTime()
 | 
			
		||||
//
 | 
			
		||||
// # JSON Mapping
 | 
			
		||||
//
 | 
			
		||||
@@ -172,10 +167,8 @@ import (
 | 
			
		||||
// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
 | 
			
		||||
// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
 | 
			
		||||
// the Joda Time's [`ISODateTimeFormat.dateTime()`](
 | 
			
		||||
// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
 | 
			
		||||
// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()
 | 
			
		||||
// ) to obtain a formatter capable of generating timestamps in this format.
 | 
			
		||||
//
 | 
			
		||||
//
 | 
			
		||||
type Timestamp struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							@@ -3,16 +3,13 @@
 | 
			
		||||
github.com/cyrilix/robocar-base/cli
 | 
			
		||||
github.com/cyrilix/robocar-base/service
 | 
			
		||||
github.com/cyrilix/robocar-base/testtools
 | 
			
		||||
# github.com/cyrilix/robocar-protobuf/go v1.3.0
 | 
			
		||||
## explicit; go 1.18
 | 
			
		||||
# github.com/cyrilix/robocar-protobuf/go v1.4.0
 | 
			
		||||
## explicit; go 1.21
 | 
			
		||||
github.com/cyrilix/robocar-protobuf/go/events
 | 
			
		||||
# github.com/eclipse/paho.mqtt.golang v1.4.1
 | 
			
		||||
## explicit; go 1.14
 | 
			
		||||
github.com/eclipse/paho.mqtt.golang
 | 
			
		||||
github.com/eclipse/paho.mqtt.golang/packets
 | 
			
		||||
# github.com/golang/protobuf v1.5.2
 | 
			
		||||
## explicit; go 1.9
 | 
			
		||||
github.com/golang/protobuf/ptypes/timestamp
 | 
			
		||||
# github.com/gorilla/websocket v1.4.2
 | 
			
		||||
## explicit; go 1.12
 | 
			
		||||
github.com/gorilla/websocket
 | 
			
		||||
@@ -38,7 +35,7 @@ golang.org/x/net/proxy
 | 
			
		||||
# golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
 | 
			
		||||
## explicit
 | 
			
		||||
golang.org/x/sync/semaphore
 | 
			
		||||
# google.golang.org/protobuf v1.28.1
 | 
			
		||||
# google.golang.org/protobuf v1.31.0
 | 
			
		||||
## explicit; go 1.11
 | 
			
		||||
google.golang.org/protobuf/encoding/prototext
 | 
			
		||||
google.golang.org/protobuf/encoding/protowire
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user