feat: implement copilot mode
This commit is contained in:
parent
c2b12f297c
commit
58538cff20
@ -1,4 +1,4 @@
|
|||||||
FROM --platform=$BUILDPLATFORM golang:1.17-alpine AS builder
|
FROM --platform=$BUILDPLATFORM golang:1.21-alpine AS builder
|
||||||
|
|
||||||
ARG TARGETPLATFORM
|
ARG TARGETPLATFORM
|
||||||
ARG BUILDPLATFORM
|
ARG BUILDPLATFORM
|
||||||
|
9
go.mod
9
go.mod
@ -1,17 +1,18 @@
|
|||||||
module github.com/cyrilix/robocar-throttle
|
module github.com/cyrilix/robocar-throttle
|
||||||
|
|
||||||
go 1.19
|
go 1.21
|
||||||
|
|
||||||
|
toolchain go1.21.3
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/cyrilix/robocar-base v0.1.7
|
github.com/cyrilix/robocar-base v0.1.7
|
||||||
github.com/cyrilix/robocar-protobuf/go v1.3.0
|
github.com/cyrilix/robocar-protobuf/go v1.4.0
|
||||||
github.com/eclipse/paho.mqtt.golang v1.4.1
|
github.com/eclipse/paho.mqtt.golang v1.4.1
|
||||||
go.uber.org/zap v1.23.0
|
go.uber.org/zap v1.23.0
|
||||||
google.golang.org/protobuf v1.28.1
|
google.golang.org/protobuf v1.31.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/golang/protobuf v1.5.2 // indirect
|
|
||||||
github.com/gorilla/websocket v1.4.2 // indirect
|
github.com/gorilla/websocket v1.4.2 // indirect
|
||||||
go.uber.org/atomic v1.7.0 // indirect
|
go.uber.org/atomic v1.7.0 // indirect
|
||||||
go.uber.org/multierr v1.6.0 // indirect
|
go.uber.org/multierr v1.6.0 // indirect
|
||||||
|
16
go.sum
16
go.sum
@ -1,29 +1,31 @@
|
|||||||
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
|
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
|
||||||
|
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
||||||
github.com/cyrilix/robocar-base v0.1.7 h1:EVzZ0KjigSFpke5f3A/PybEH3WFUEIrYSc3z/dhOZ48=
|
github.com/cyrilix/robocar-base v0.1.7 h1:EVzZ0KjigSFpke5f3A/PybEH3WFUEIrYSc3z/dhOZ48=
|
||||||
github.com/cyrilix/robocar-base v0.1.7/go.mod h1:4E11HQSNy2NT8e7MW188y6ST9C0RzarKyn7sK/3V/Lk=
|
github.com/cyrilix/robocar-base v0.1.7/go.mod h1:4E11HQSNy2NT8e7MW188y6ST9C0RzarKyn7sK/3V/Lk=
|
||||||
github.com/cyrilix/robocar-protobuf/go v1.3.0 h1:vLsoLQeIfXPnrJ+xYrPy/R/swjYiMBBR7wT2ILdLcQA=
|
github.com/cyrilix/robocar-protobuf/go v1.4.0 h1:ZMN2zjn2iplsbHoBrjiI7d3HdNutWUB+NcVDh2mFcqM=
|
||||||
github.com/cyrilix/robocar-protobuf/go v1.3.0/go.mod h1:Y3AE28K5V7EZxMXp/6A8RhkRz15VOfFy4CjST35FbtQ=
|
github.com/cyrilix/robocar-protobuf/go v1.4.0/go.mod h1:69ZGmxS2JufIxGZPEKvAMZj5b1fVMVG3QTyFlCCHGtg=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/eclipse/paho.mqtt.golang v1.4.1 h1:tUSpviiL5G3P9SZZJPC4ZULZJsxQKXxfENpMvdbAXAI=
|
github.com/eclipse/paho.mqtt.golang v1.4.1 h1:tUSpviiL5G3P9SZZJPC4ZULZJsxQKXxfENpMvdbAXAI=
|
||||||
github.com/eclipse/paho.mqtt.golang v1.4.1/go.mod h1:JGt0RsEwEX+Xa/agj90YJ9d9DH2b7upDZMK9HRbFvCA=
|
github.com/eclipse/paho.mqtt.golang v1.4.1/go.mod h1:JGt0RsEwEX+Xa/agj90YJ9d9DH2b7upDZMK9HRbFvCA=
|
||||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||||
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
|
|
||||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
|
||||||
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
||||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
|
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
|
||||||
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
|
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
|
||||||
|
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||||
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
|
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
|
||||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||||
go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI=
|
go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI=
|
||||||
|
go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
|
||||||
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
|
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
|
||||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
||||||
go.uber.org/zap v1.23.0 h1:OjGQ5KQDEUawVHxNwQgPpiypGHOxo2mNZsOqTak4fFY=
|
go.uber.org/zap v1.23.0 h1:OjGQ5KQDEUawVHxNwQgPpiypGHOxo2mNZsOqTak4fFY=
|
||||||
@ -45,7 +47,7 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm
|
|||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
||||||
google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
|
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
@ -149,7 +149,7 @@ func (c *Controller) onDriveMode(_ mqtt.Client, message mqtt.Message) {
|
|||||||
func (c *Controller) onRCThrottle(_ mqtt.Client, message mqtt.Message) {
|
func (c *Controller) onRCThrottle(_ mqtt.Client, message mqtt.Message) {
|
||||||
c.muDriveMode.RLock()
|
c.muDriveMode.RLock()
|
||||||
defer c.muDriveMode.RUnlock()
|
defer c.muDriveMode.RUnlock()
|
||||||
if c.driveMode == events.DriveMode_USER {
|
if c.driveMode == events.DriveMode_USER || c.driveMode == events.DriveMode_COPILOT {
|
||||||
// Republish same content
|
// Republish same content
|
||||||
payload := message.Payload()
|
payload := message.Payload()
|
||||||
var throttleMsg events.ThrottleMessage
|
var throttleMsg events.ThrottleMessage
|
||||||
|
@ -53,7 +53,12 @@ func TestDefaultThrottle(t *testing.T) {
|
|||||||
{"test4", 1., events.DriveModeMessage{DriveMode: events.DriveMode_USER}, events.ThrottleMessage{Throttle: 0.5, Confidence: 1.0}, events.ThrottleMessage{Throttle: 0.5, Confidence: 1.0}},
|
{"test4", 1., events.DriveModeMessage{DriveMode: events.DriveMode_USER}, events.ThrottleMessage{Throttle: 0.5, Confidence: 1.0}, events.ThrottleMessage{Throttle: 0.5, Confidence: 1.0}},
|
||||||
{"test5", 1., events.DriveModeMessage{DriveMode: events.DriveMode_USER}, events.ThrottleMessage{Throttle: 0.4, Confidence: 1.0}, events.ThrottleMessage{Throttle: 0.4, Confidence: 1.0}},
|
{"test5", 1., events.DriveModeMessage{DriveMode: events.DriveMode_USER}, events.ThrottleMessage{Throttle: 0.4, Confidence: 1.0}, events.ThrottleMessage{Throttle: 0.4, Confidence: 1.0}},
|
||||||
{"test6", 1., events.DriveModeMessage{DriveMode: events.DriveMode_USER}, events.ThrottleMessage{Throttle: 0.6, Confidence: 1.0}, events.ThrottleMessage{Throttle: 0.6, Confidence: 1.0}},
|
{"test6", 1., events.DriveModeMessage{DriveMode: events.DriveMode_USER}, events.ThrottleMessage{Throttle: 0.6, Confidence: 1.0}, events.ThrottleMessage{Throttle: 0.6, Confidence: 1.0}},
|
||||||
|
{"test7", 1., events.DriveModeMessage{DriveMode: events.DriveMode_COPILOT}, events.ThrottleMessage{Throttle: 0.3, Confidence: 1.0}, events.ThrottleMessage{Throttle: 0.3, Confidence: 1.0}},
|
||||||
|
{"test8", 1., events.DriveModeMessage{DriveMode: events.DriveMode_COPILOT}, events.ThrottleMessage{Throttle: 0.5, Confidence: 1.0}, events.ThrottleMessage{Throttle: 0.5, Confidence: 1.0}},
|
||||||
|
{"test9", 1., events.DriveModeMessage{DriveMode: events.DriveMode_COPILOT}, events.ThrottleMessage{Throttle: 0.4, Confidence: 1.0}, events.ThrottleMessage{Throttle: 0.4, Confidence: 1.0}},
|
||||||
|
{"test10", 1., events.DriveModeMessage{DriveMode: events.DriveMode_COPILOT}, events.ThrottleMessage{Throttle: 0.6, Confidence: 1.0}, events.ThrottleMessage{Throttle: 0.6, Confidence: 1.0}},
|
||||||
{"limit max throttle on user mode", 0.4, events.DriveModeMessage{DriveMode: events.DriveMode_USER}, events.ThrottleMessage{Throttle: 0.6, Confidence: 1.0}, events.ThrottleMessage{Throttle: 0.4, Confidence: 1.0}},
|
{"limit max throttle on user mode", 0.4, events.DriveModeMessage{DriveMode: events.DriveMode_USER}, events.ThrottleMessage{Throttle: 0.6, Confidence: 1.0}, events.ThrottleMessage{Throttle: 0.4, Confidence: 1.0}},
|
||||||
|
{"limit max throttle on copilot mode", 0.4, events.DriveModeMessage{DriveMode: events.DriveMode_COPILOT}, events.ThrottleMessage{Throttle: 0.6, Confidence: 1.0}, events.ThrottleMessage{Throttle: 0.4, Confidence: 1.0}},
|
||||||
}
|
}
|
||||||
|
|
||||||
go p.Start()
|
go p.Start()
|
||||||
@ -189,6 +194,57 @@ func TestController_Start(t *testing.T) {
|
|||||||
},
|
},
|
||||||
want: &events.ThrottleMessage{Throttle: 0.1, Confidence: 1.0},
|
want: &events.ThrottleMessage{Throttle: 0.1, Confidence: 1.0},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "On copilot drive mode, throttle from rc",
|
||||||
|
fields: fields{
|
||||||
|
driveMode: events.DriveMode_COPILOT,
|
||||||
|
max: 0.8,
|
||||||
|
min: 0.3,
|
||||||
|
publishPilotFrequency: publishPilotFrequency,
|
||||||
|
brakeCtl: &brake.DisabledController{},
|
||||||
|
},
|
||||||
|
msgEvents: msgEvents{
|
||||||
|
driveMode: &events.DriveModeMessage{DriveMode: events.DriveMode_COPILOT},
|
||||||
|
steering: &events.SteeringMessage{Steering: 0.0, Confidence: 1.0},
|
||||||
|
rcThrottle: &events.ThrottleMessage{Throttle: 0.4, Confidence: 1.0},
|
||||||
|
throttleFeedback: &events.ThrottleMessage{Throttle: 0.4, Confidence: 1.0},
|
||||||
|
},
|
||||||
|
want: &events.ThrottleMessage{Throttle: 0.4, Confidence: 1.0},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "On copilot drive mode, limit throttle to max allowed value",
|
||||||
|
fields: fields{
|
||||||
|
driveMode: events.DriveMode_COPILOT,
|
||||||
|
max: 0.8,
|
||||||
|
min: 0.3,
|
||||||
|
publishPilotFrequency: publishPilotFrequency,
|
||||||
|
brakeCtl: &brake.DisabledController{},
|
||||||
|
},
|
||||||
|
msgEvents: msgEvents{
|
||||||
|
driveMode: &events.DriveModeMessage{DriveMode: events.DriveMode_COPILOT},
|
||||||
|
steering: &events.SteeringMessage{Steering: 0.0, Confidence: 1.0},
|
||||||
|
rcThrottle: &events.ThrottleMessage{Throttle: 0.9, Confidence: 1.0},
|
||||||
|
throttleFeedback: &events.ThrottleMessage{Throttle: 0.8, Confidence: 1.0},
|
||||||
|
},
|
||||||
|
want: &events.ThrottleMessage{Throttle: 0.8, Confidence: 1.0},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "On copilot drive mode, throttle can be < to min allowed value",
|
||||||
|
fields: fields{
|
||||||
|
driveMode: events.DriveMode_COPILOT,
|
||||||
|
max: 0.8,
|
||||||
|
min: 0.3,
|
||||||
|
publishPilotFrequency: publishPilotFrequency,
|
||||||
|
brakeCtl: &brake.DisabledController{},
|
||||||
|
},
|
||||||
|
msgEvents: msgEvents{
|
||||||
|
driveMode: &events.DriveModeMessage{DriveMode: events.DriveMode_COPILOT},
|
||||||
|
steering: &events.SteeringMessage{Steering: 0.0, Confidence: 1.0},
|
||||||
|
rcThrottle: &events.ThrottleMessage{Throttle: 0.1, Confidence: 1.0},
|
||||||
|
throttleFeedback: &events.ThrottleMessage{Throttle: 0.4, Confidence: 1.0},
|
||||||
|
},
|
||||||
|
want: &events.ThrottleMessage{Throttle: 0.1, Confidence: 1.0},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "On pilot drive mode and straight steering, use max throttle allowed",
|
name: "On pilot drive mode and straight steering, use max throttle allowed",
|
||||||
fields: fields{
|
fields: fields{
|
||||||
|
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.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.28.1
|
// protoc-gen-go v1.31.0
|
||||||
// protoc v3.21.4
|
// protoc v3.21.12
|
||||||
// source: events/events.proto
|
// source: events/events.proto
|
||||||
|
|
||||||
package events
|
package events
|
||||||
|
|
||||||
import (
|
import (
|
||||||
timestamp "github.com/golang/protobuf/ptypes/timestamp"
|
|
||||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
|
||||||
reflect "reflect"
|
reflect "reflect"
|
||||||
sync "sync"
|
sync "sync"
|
||||||
)
|
)
|
||||||
@ -79,6 +79,7 @@ const (
|
|||||||
DriveMode_INVALID DriveMode = 0
|
DriveMode_INVALID DriveMode = 0
|
||||||
DriveMode_USER DriveMode = 1
|
DriveMode_USER DriveMode = 1
|
||||||
DriveMode_PILOT DriveMode = 2
|
DriveMode_PILOT DriveMode = 2
|
||||||
|
DriveMode_COPILOT DriveMode = 3
|
||||||
)
|
)
|
||||||
|
|
||||||
// Enum value maps for DriveMode.
|
// Enum value maps for DriveMode.
|
||||||
@ -87,11 +88,13 @@ var (
|
|||||||
0: "INVALID",
|
0: "INVALID",
|
||||||
1: "USER",
|
1: "USER",
|
||||||
2: "PILOT",
|
2: "PILOT",
|
||||||
|
3: "COPILOT",
|
||||||
}
|
}
|
||||||
DriveMode_value = map[string]int32{
|
DriveMode_value = map[string]int32{
|
||||||
"INVALID": 0,
|
"INVALID": 0,
|
||||||
"USER": 1,
|
"USER": 1,
|
||||||
"PILOT": 2,
|
"PILOT": 2,
|
||||||
|
"COPILOT": 3,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -179,9 +182,9 @@ type FrameRef struct {
|
|||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,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"`
|
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"`
|
CreatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *FrameRef) Reset() {
|
func (x *FrameRef) Reset() {
|
||||||
@ -230,7 +233,7 @@ func (x *FrameRef) GetId() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *FrameRef) GetCreatedAt() *timestamp.Timestamp {
|
func (x *FrameRef) GetCreatedAt() *timestamppb.Timestamp {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.CreatedAt
|
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,
|
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,
|
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,
|
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,
|
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,
|
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,
|
0x05, 0x50, 0x49, 0x4c, 0x4f, 0x54, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x50, 0x49,
|
||||||
0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x59, 0x10, 0x00, 0x12,
|
0x4c, 0x4f, 0x54, 0x10, 0x03, 0x2a, 0x32, 0x0a, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x4f, 0x62, 0x6a,
|
||||||
0x07, 0x0a, 0x03, 0x43, 0x41, 0x52, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x55, 0x4d, 0x50,
|
0x65, 0x63, 0x74, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x59, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03,
|
||||||
0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x4c, 0x4f, 0x54, 0x10, 0x03, 0x42, 0x0a, 0x5a, 0x08,
|
0x43, 0x41, 0x52, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x55, 0x4d, 0x50, 0x10, 0x02, 0x12,
|
||||||
0x2e, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
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 (
|
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_enumTypes = make([]protoimpl.EnumInfo, 3)
|
||||||
var file_events_events_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
|
var file_events_events_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
|
||||||
var file_events_events_proto_goTypes = []interface{}{
|
var file_events_events_proto_goTypes = []interface{}{
|
||||||
(SpeedZone)(0), // 0: robocar.events.SpeedZone
|
(SpeedZone)(0), // 0: robocar.events.SpeedZone
|
||||||
(DriveMode)(0), // 1: robocar.events.DriveMode
|
(DriveMode)(0), // 1: robocar.events.DriveMode
|
||||||
(TypeObject)(0), // 2: robocar.events.TypeObject
|
(TypeObject)(0), // 2: robocar.events.TypeObject
|
||||||
(*FrameRef)(nil), // 3: robocar.events.FrameRef
|
(*FrameRef)(nil), // 3: robocar.events.FrameRef
|
||||||
(*FrameMessage)(nil), // 4: robocar.events.FrameMessage
|
(*FrameMessage)(nil), // 4: robocar.events.FrameMessage
|
||||||
(*SteeringMessage)(nil), // 5: robocar.events.SteeringMessage
|
(*SteeringMessage)(nil), // 5: robocar.events.SteeringMessage
|
||||||
(*ThrottleMessage)(nil), // 6: robocar.events.ThrottleMessage
|
(*ThrottleMessage)(nil), // 6: robocar.events.ThrottleMessage
|
||||||
(*SpeedZoneMessage)(nil), // 7: robocar.events.SpeedZoneMessage
|
(*SpeedZoneMessage)(nil), // 7: robocar.events.SpeedZoneMessage
|
||||||
(*DriveModeMessage)(nil), // 8: robocar.events.DriveModeMessage
|
(*DriveModeMessage)(nil), // 8: robocar.events.DriveModeMessage
|
||||||
(*ObjectsMessage)(nil), // 9: robocar.events.ObjectsMessage
|
(*ObjectsMessage)(nil), // 9: robocar.events.ObjectsMessage
|
||||||
(*Object)(nil), // 10: robocar.events.Object
|
(*Object)(nil), // 10: robocar.events.Object
|
||||||
(*SwitchRecordMessage)(nil), // 11: robocar.events.SwitchRecordMessage
|
(*SwitchRecordMessage)(nil), // 11: robocar.events.SwitchRecordMessage
|
||||||
(*RoadMessage)(nil), // 12: robocar.events.RoadMessage
|
(*RoadMessage)(nil), // 12: robocar.events.RoadMessage
|
||||||
(*Point)(nil), // 13: robocar.events.Point
|
(*Point)(nil), // 13: robocar.events.Point
|
||||||
(*Ellipse)(nil), // 14: robocar.events.Ellipse
|
(*Ellipse)(nil), // 14: robocar.events.Ellipse
|
||||||
(*RecordMessage)(nil), // 15: robocar.events.RecordMessage
|
(*RecordMessage)(nil), // 15: robocar.events.RecordMessage
|
||||||
(*timestamp.Timestamp)(nil), // 16: google.protobuf.Timestamp
|
(*timestamppb.Timestamp)(nil), // 16: google.protobuf.Timestamp
|
||||||
}
|
}
|
||||||
var file_events_events_proto_depIdxs = []int32{
|
var file_events_events_proto_depIdxs = []int32{
|
||||||
16, // 0: robocar.events.FrameRef.created_at:type_name -> google.protobuf.Timestamp
|
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
|
// MarshalOptions object. Do not depend on the output being stable. It may
|
||||||
// change over time across different versions of the program.
|
// change over time across different versions of the program.
|
||||||
func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) {
|
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.
|
// marshal is a centralized function that all marshal operations go through.
|
||||||
// For profiling purposes, avoid changing the name of this function or
|
// For profiling purposes, avoid changing the name of this function or
|
||||||
// introducing other code paths for marshal that do not go through this.
|
// 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{'{', '}'}
|
var delims = [2]byte{'{', '}'}
|
||||||
|
|
||||||
if o.Multiline && o.Indent == "" {
|
if o.Multiline && o.Indent == "" {
|
||||||
@ -117,7 +123,7 @@ func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) {
|
|||||||
o.Resolver = protoregistry.GlobalTypes
|
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 {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -125,7 +131,7 @@ func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) {
|
|||||||
// Treat nil message interface as an empty message,
|
// Treat nil message interface as an empty message,
|
||||||
// in which case there is nothing to output.
|
// in which case there is nothing to output.
|
||||||
if m == nil {
|
if m == nil {
|
||||||
return []byte{}, nil
|
return b, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
enc := encoder{internalEnc, o}
|
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.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// Package protowire parses and formats the raw wire encoding.
|
// 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,
|
// For marshaling and unmarshaling entire protobuf messages,
|
||||||
// use the "google.golang.org/protobuf/proto" package instead.
|
// use the "google.golang.org/protobuf/proto" package instead.
|
||||||
@ -29,12 +29,8 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// IsValid reports whether the field number is semantically valid.
|
// 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 {
|
func (n Number) IsValid() bool {
|
||||||
return MinValidNumber <= n && n < FirstReservedNumber || LastReservedNumber < n && n <= MaxValidNumber
|
return MinValidNumber <= n && n <= MaxValidNumber
|
||||||
}
|
}
|
||||||
|
|
||||||
// Type represents the wire type.
|
// 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
|
// Field number. Identify if input is a valid number that is not negative
|
||||||
// and is decimal integer within 32-bit range.
|
// and is decimal integer within 32-bit range.
|
||||||
if num := parseNumber(d.in); num.size > 0 {
|
if num := parseNumber(d.in); num.size > 0 {
|
||||||
|
str := num.string(d.in)
|
||||||
if !num.neg && num.kind == numDec {
|
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 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))
|
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 {
|
if num.neg {
|
||||||
numAttrs |= isNegative
|
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{
|
tok := Token{
|
||||||
kind: Scalar,
|
kind: Scalar,
|
||||||
attrs: numberValue,
|
attrs: numberValue,
|
||||||
pos: len(d.orig) - len(d.in),
|
pos: len(d.orig) - len(d.in),
|
||||||
raw: d.in[:num.size],
|
raw: d.in[:num.size],
|
||||||
str: string(d.in[:strSize]),
|
str: num.string(d.in),
|
||||||
numAttrs: numAttrs,
|
numAttrs: numAttrs,
|
||||||
}
|
}
|
||||||
d.consume(num.size)
|
d.consume(num.size)
|
||||||
@ -46,6 +41,27 @@ type number struct {
|
|||||||
kind uint8
|
kind uint8
|
||||||
neg bool
|
neg bool
|
||||||
size int
|
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
|
// parseNumber constructs a number object from given input. It allows for the
|
||||||
@ -67,19 +83,22 @@ func parseNumber(input []byte) number {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Optional -
|
// Optional -
|
||||||
|
var sep int
|
||||||
if s[0] == '-' {
|
if s[0] == '-' {
|
||||||
neg = true
|
neg = true
|
||||||
s = s[1:]
|
s = s[1:]
|
||||||
size++
|
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 {
|
if len(s) == 0 {
|
||||||
return number{}
|
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 {
|
switch {
|
||||||
case s[0] == '0':
|
case s[0] == '0':
|
||||||
if len(s) > 1 {
|
if len(s) > 1 {
|
||||||
@ -116,7 +135,7 @@ func parseNumber(input []byte) number {
|
|||||||
if len(s) > 0 && !isDelim(s[0]) {
|
if len(s) > 0 && !isDelim(s[0]) {
|
||||||
return number{}
|
return number{}
|
||||||
}
|
}
|
||||||
return number{kind: kind, neg: neg, size: size}
|
return number{kind: kind, neg: neg, size: size, sep: sep}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
s = s[1:]
|
s = s[1:]
|
||||||
@ -188,5 +207,5 @@ func parseNumber(input []byte) number {
|
|||||||
return 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
|
// 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
|
// multi-byte UTF-8 sequences are escaped. This property ensures that the
|
||||||
// overall output is ASCII (as opposed to UTF-8).
|
// overall output is ASCII (as opposed to UTF-8).
|
||||||
func NewEncoder(indent string, delims [2]byte, outputASCII bool) (*Encoder, error) {
|
func NewEncoder(buf []byte, indent string, delims [2]byte, outputASCII bool) (*Encoder, error) {
|
||||||
e := &Encoder{}
|
e := &Encoder{
|
||||||
|
encoderState: encoderState{out: buf},
|
||||||
|
}
|
||||||
if len(indent) > 0 {
|
if len(indent) > 0 {
|
||||||
if strings.Trim(indent, " \t") != "" {
|
if strings.Trim(indent, " \t") != "" {
|
||||||
return nil, errors.New("indent may only be composed of space and tab characters")
|
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.
|
// WriteInt writes out the given signed integer value.
|
||||||
func (e *Encoder) WriteInt(n int64) {
|
func (e *Encoder) WriteInt(n int64) {
|
||||||
e.prepareNext(scalar)
|
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.
|
// WriteUint writes out the given unsigned integer value.
|
||||||
func (e *Encoder) WriteUint(n uint64) {
|
func (e *Encoder) WriteUint(n uint64) {
|
||||||
e.prepareNext(scalar)
|
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.
|
// 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_Options_field_name protoreflect.Name = "options"
|
||||||
FileDescriptorProto_SourceCodeInfo_field_name protoreflect.Name = "source_code_info"
|
FileDescriptorProto_SourceCodeInfo_field_name protoreflect.Name = "source_code_info"
|
||||||
FileDescriptorProto_Syntax_field_name protoreflect.Name = "syntax"
|
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_Name_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.name"
|
||||||
FileDescriptorProto_Package_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.package"
|
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_Options_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.options"
|
||||||
FileDescriptorProto_SourceCodeInfo_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.source_code_info"
|
FileDescriptorProto_SourceCodeInfo_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.source_code_info"
|
||||||
FileDescriptorProto_Syntax_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.syntax"
|
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.
|
// Field numbers for google.protobuf.FileDescriptorProto.
|
||||||
@ -79,6 +81,7 @@ const (
|
|||||||
FileDescriptorProto_Options_field_number protoreflect.FieldNumber = 8
|
FileDescriptorProto_Options_field_number protoreflect.FieldNumber = 8
|
||||||
FileDescriptorProto_SourceCodeInfo_field_number protoreflect.FieldNumber = 9
|
FileDescriptorProto_SourceCodeInfo_field_number protoreflect.FieldNumber = 9
|
||||||
FileDescriptorProto_Syntax_field_number protoreflect.FieldNumber = 12
|
FileDescriptorProto_Syntax_field_number protoreflect.FieldNumber = 12
|
||||||
|
FileDescriptorProto_Edition_field_number protoreflect.FieldNumber = 13
|
||||||
)
|
)
|
||||||
|
|
||||||
// Names for google.protobuf.DescriptorProto.
|
// Names for google.protobuf.DescriptorProto.
|
||||||
@ -180,13 +183,58 @@ const (
|
|||||||
// Field names for google.protobuf.ExtensionRangeOptions.
|
// Field names for google.protobuf.ExtensionRangeOptions.
|
||||||
const (
|
const (
|
||||||
ExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option"
|
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_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.
|
// Field numbers for google.protobuf.ExtensionRangeOptions.
|
||||||
const (
|
const (
|
||||||
ExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999
|
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.
|
// Names for google.protobuf.FieldDescriptorProto.
|
||||||
@ -494,26 +542,29 @@ const (
|
|||||||
|
|
||||||
// Field names for google.protobuf.MessageOptions.
|
// Field names for google.protobuf.MessageOptions.
|
||||||
const (
|
const (
|
||||||
MessageOptions_MessageSetWireFormat_field_name protoreflect.Name = "message_set_wire_format"
|
MessageOptions_MessageSetWireFormat_field_name protoreflect.Name = "message_set_wire_format"
|
||||||
MessageOptions_NoStandardDescriptorAccessor_field_name protoreflect.Name = "no_standard_descriptor_accessor"
|
MessageOptions_NoStandardDescriptorAccessor_field_name protoreflect.Name = "no_standard_descriptor_accessor"
|
||||||
MessageOptions_Deprecated_field_name protoreflect.Name = "deprecated"
|
MessageOptions_Deprecated_field_name protoreflect.Name = "deprecated"
|
||||||
MessageOptions_MapEntry_field_name protoreflect.Name = "map_entry"
|
MessageOptions_MapEntry_field_name protoreflect.Name = "map_entry"
|
||||||
MessageOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option"
|
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_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_NoStandardDescriptorAccessor_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.no_standard_descriptor_accessor"
|
||||||
MessageOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated"
|
MessageOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated"
|
||||||
MessageOptions_MapEntry_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.map_entry"
|
MessageOptions_MapEntry_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.map_entry"
|
||||||
MessageOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.uninterpreted_option"
|
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.
|
// Field numbers for google.protobuf.MessageOptions.
|
||||||
const (
|
const (
|
||||||
MessageOptions_MessageSetWireFormat_field_number protoreflect.FieldNumber = 1
|
MessageOptions_MessageSetWireFormat_field_number protoreflect.FieldNumber = 1
|
||||||
MessageOptions_NoStandardDescriptorAccessor_field_number protoreflect.FieldNumber = 2
|
MessageOptions_NoStandardDescriptorAccessor_field_number protoreflect.FieldNumber = 2
|
||||||
MessageOptions_Deprecated_field_number protoreflect.FieldNumber = 3
|
MessageOptions_Deprecated_field_number protoreflect.FieldNumber = 3
|
||||||
MessageOptions_MapEntry_field_number protoreflect.FieldNumber = 7
|
MessageOptions_MapEntry_field_number protoreflect.FieldNumber = 7
|
||||||
MessageOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999
|
MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 11
|
||||||
|
MessageOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999
|
||||||
)
|
)
|
||||||
|
|
||||||
// Names for google.protobuf.FieldOptions.
|
// Names for google.protobuf.FieldOptions.
|
||||||
@ -528,16 +579,26 @@ const (
|
|||||||
FieldOptions_Packed_field_name protoreflect.Name = "packed"
|
FieldOptions_Packed_field_name protoreflect.Name = "packed"
|
||||||
FieldOptions_Jstype_field_name protoreflect.Name = "jstype"
|
FieldOptions_Jstype_field_name protoreflect.Name = "jstype"
|
||||||
FieldOptions_Lazy_field_name protoreflect.Name = "lazy"
|
FieldOptions_Lazy_field_name protoreflect.Name = "lazy"
|
||||||
|
FieldOptions_UnverifiedLazy_field_name protoreflect.Name = "unverified_lazy"
|
||||||
FieldOptions_Deprecated_field_name protoreflect.Name = "deprecated"
|
FieldOptions_Deprecated_field_name protoreflect.Name = "deprecated"
|
||||||
FieldOptions_Weak_field_name protoreflect.Name = "weak"
|
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_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option"
|
||||||
|
|
||||||
FieldOptions_Ctype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.ctype"
|
FieldOptions_Ctype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.ctype"
|
||||||
FieldOptions_Packed_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.packed"
|
FieldOptions_Packed_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.packed"
|
||||||
FieldOptions_Jstype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.jstype"
|
FieldOptions_Jstype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.jstype"
|
||||||
FieldOptions_Lazy_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.lazy"
|
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_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.deprecated"
|
||||||
FieldOptions_Weak_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.weak"
|
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"
|
FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -547,8 +608,13 @@ const (
|
|||||||
FieldOptions_Packed_field_number protoreflect.FieldNumber = 2
|
FieldOptions_Packed_field_number protoreflect.FieldNumber = 2
|
||||||
FieldOptions_Jstype_field_number protoreflect.FieldNumber = 6
|
FieldOptions_Jstype_field_number protoreflect.FieldNumber = 6
|
||||||
FieldOptions_Lazy_field_number protoreflect.FieldNumber = 5
|
FieldOptions_Lazy_field_number protoreflect.FieldNumber = 5
|
||||||
|
FieldOptions_UnverifiedLazy_field_number protoreflect.FieldNumber = 15
|
||||||
FieldOptions_Deprecated_field_number protoreflect.FieldNumber = 3
|
FieldOptions_Deprecated_field_number protoreflect.FieldNumber = 3
|
||||||
FieldOptions_Weak_field_number protoreflect.FieldNumber = 10
|
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
|
FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -564,6 +630,18 @@ const (
|
|||||||
FieldOptions_JSType_enum_name = "JSType"
|
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.
|
// Names for google.protobuf.OneofOptions.
|
||||||
const (
|
const (
|
||||||
OneofOptions_message_name protoreflect.Name = "OneofOptions"
|
OneofOptions_message_name protoreflect.Name = "OneofOptions"
|
||||||
@ -590,20 +668,23 @@ const (
|
|||||||
|
|
||||||
// Field names for google.protobuf.EnumOptions.
|
// Field names for google.protobuf.EnumOptions.
|
||||||
const (
|
const (
|
||||||
EnumOptions_AllowAlias_field_name protoreflect.Name = "allow_alias"
|
EnumOptions_AllowAlias_field_name protoreflect.Name = "allow_alias"
|
||||||
EnumOptions_Deprecated_field_name protoreflect.Name = "deprecated"
|
EnumOptions_Deprecated_field_name protoreflect.Name = "deprecated"
|
||||||
EnumOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option"
|
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_AllowAlias_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.allow_alias"
|
||||||
EnumOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated"
|
EnumOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated"
|
||||||
EnumOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.uninterpreted_option"
|
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.
|
// Field numbers for google.protobuf.EnumOptions.
|
||||||
const (
|
const (
|
||||||
EnumOptions_AllowAlias_field_number protoreflect.FieldNumber = 2
|
EnumOptions_AllowAlias_field_number protoreflect.FieldNumber = 2
|
||||||
EnumOptions_Deprecated_field_number protoreflect.FieldNumber = 3
|
EnumOptions_Deprecated_field_number protoreflect.FieldNumber = 3
|
||||||
EnumOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999
|
EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 6
|
||||||
|
EnumOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999
|
||||||
)
|
)
|
||||||
|
|
||||||
// Names for google.protobuf.EnumValueOptions.
|
// Names for google.protobuf.EnumValueOptions.
|
||||||
@ -813,11 +894,13 @@ const (
|
|||||||
GeneratedCodeInfo_Annotation_SourceFile_field_name protoreflect.Name = "source_file"
|
GeneratedCodeInfo_Annotation_SourceFile_field_name protoreflect.Name = "source_file"
|
||||||
GeneratedCodeInfo_Annotation_Begin_field_name protoreflect.Name = "begin"
|
GeneratedCodeInfo_Annotation_Begin_field_name protoreflect.Name = "begin"
|
||||||
GeneratedCodeInfo_Annotation_End_field_name protoreflect.Name = "end"
|
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_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_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_Begin_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.begin"
|
||||||
GeneratedCodeInfo_Annotation_End_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.end"
|
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.
|
// Field numbers for google.protobuf.GeneratedCodeInfo.Annotation.
|
||||||
@ -826,4 +909,11 @@ const (
|
|||||||
GeneratedCodeInfo_Annotation_SourceFile_field_number protoreflect.FieldNumber = 2
|
GeneratedCodeInfo_Annotation_SourceFile_field_number protoreflect.FieldNumber = 2
|
||||||
GeneratedCodeInfo_Annotation_Begin_field_number protoreflect.FieldNumber = 3
|
GeneratedCodeInfo_Annotation_Begin_field_number protoreflect.FieldNumber = 3
|
||||||
GeneratedCodeInfo_Annotation_End_field_number protoreflect.FieldNumber = 4
|
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_Options_field_name protoreflect.Name = "options"
|
||||||
Type_SourceContext_field_name protoreflect.Name = "source_context"
|
Type_SourceContext_field_name protoreflect.Name = "source_context"
|
||||||
Type_Syntax_field_name protoreflect.Name = "syntax"
|
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_Name_field_fullname protoreflect.FullName = "google.protobuf.Type.name"
|
||||||
Type_Fields_field_fullname protoreflect.FullName = "google.protobuf.Type.fields"
|
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_Options_field_fullname protoreflect.FullName = "google.protobuf.Type.options"
|
||||||
Type_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Type.source_context"
|
Type_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Type.source_context"
|
||||||
Type_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Type.syntax"
|
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.
|
// Field numbers for google.protobuf.Type.
|
||||||
@ -49,6 +51,7 @@ const (
|
|||||||
Type_Options_field_number protoreflect.FieldNumber = 4
|
Type_Options_field_number protoreflect.FieldNumber = 4
|
||||||
Type_SourceContext_field_number protoreflect.FieldNumber = 5
|
Type_SourceContext_field_number protoreflect.FieldNumber = 5
|
||||||
Type_Syntax_field_number protoreflect.FieldNumber = 6
|
Type_Syntax_field_number protoreflect.FieldNumber = 6
|
||||||
|
Type_Edition_field_number protoreflect.FieldNumber = 7
|
||||||
)
|
)
|
||||||
|
|
||||||
// Names for google.protobuf.Field.
|
// Names for google.protobuf.Field.
|
||||||
@ -121,12 +124,14 @@ const (
|
|||||||
Enum_Options_field_name protoreflect.Name = "options"
|
Enum_Options_field_name protoreflect.Name = "options"
|
||||||
Enum_SourceContext_field_name protoreflect.Name = "source_context"
|
Enum_SourceContext_field_name protoreflect.Name = "source_context"
|
||||||
Enum_Syntax_field_name protoreflect.Name = "syntax"
|
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_Name_field_fullname protoreflect.FullName = "google.protobuf.Enum.name"
|
||||||
Enum_Enumvalue_field_fullname protoreflect.FullName = "google.protobuf.Enum.enumvalue"
|
Enum_Enumvalue_field_fullname protoreflect.FullName = "google.protobuf.Enum.enumvalue"
|
||||||
Enum_Options_field_fullname protoreflect.FullName = "google.protobuf.Enum.options"
|
Enum_Options_field_fullname protoreflect.FullName = "google.protobuf.Enum.options"
|
||||||
Enum_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Enum.source_context"
|
Enum_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Enum.source_context"
|
||||||
Enum_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Enum.syntax"
|
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.
|
// Field numbers for google.protobuf.Enum.
|
||||||
@ -136,6 +141,7 @@ const (
|
|||||||
Enum_Options_field_number protoreflect.FieldNumber = 3
|
Enum_Options_field_number protoreflect.FieldNumber = 3
|
||||||
Enum_SourceContext_field_number protoreflect.FieldNumber = 4
|
Enum_SourceContext_field_number protoreflect.FieldNumber = 4
|
||||||
Enum_Syntax_field_number protoreflect.FieldNumber = 5
|
Enum_Syntax_field_number protoreflect.FieldNumber = 5
|
||||||
|
Enum_Edition_field_number protoreflect.FieldNumber = 6
|
||||||
)
|
)
|
||||||
|
|
||||||
// Names for google.protobuf.EnumValue.
|
// 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:
|
default:
|
||||||
return newSingularConverter(t, fd)
|
return newSingularConverter(t, fd)
|
||||||
}
|
}
|
||||||
panic(fmt.Sprintf("invalid Go type %v for field %v", t, fd.FullName()))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
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)
|
return !inOneof(ox) && inOneof(oy)
|
||||||
}
|
}
|
||||||
// Fields in disjoint oneof sets are sorted by declaration index.
|
// 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()
|
return ox.Index() < oy.Index()
|
||||||
}
|
}
|
||||||
// Fields sorted by field number.
|
// 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
|
// Unlike strings.Builder, we do not need to copy over the contents
|
||||||
// of the old buffer since our builder provides no API for
|
// of the old buffer since our builder provides no API for
|
||||||
// retrieving previously created strings.
|
// 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 {
|
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.
|
// 10. Send out the CL for review and submit it.
|
||||||
const (
|
const (
|
||||||
Major = 1
|
Major = 1
|
||||||
Minor = 28
|
Minor = 31
|
||||||
Patch = 1
|
Patch = 0
|
||||||
PreRelease = ""
|
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.
|
// Package proto provides functions operating on protocol buffer messages.
|
||||||
//
|
//
|
||||||
// For documentation on protocol buffers in general, see:
|
// For documentation on protocol buffers in general, see:
|
||||||
//
|
// https://protobuf.dev.
|
||||||
// https://developers.google.com/protocol-buffers
|
|
||||||
//
|
//
|
||||||
// For a tutorial on using protocol buffers with Go, see:
|
// For a tutorial on using protocol buffers with Go, see:
|
||||||
//
|
// https://protobuf.dev/getting-started/gotutorial.
|
||||||
// https://developers.google.com/protocol-buffers/docs/gotutorial
|
|
||||||
//
|
//
|
||||||
// For a guide to generated Go protocol buffer code, see:
|
// For a guide to generated Go protocol buffer code, see:
|
||||||
//
|
// https://protobuf.dev/reference/go/go-generated.
|
||||||
// https://developers.google.com/protocol-buffers/docs/reference/go-generated
|
|
||||||
//
|
//
|
||||||
// # Binary serialization
|
// # 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
|
package proto
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"math"
|
|
||||||
"reflect"
|
"reflect"
|
||||||
|
|
||||||
"google.golang.org/protobuf/encoding/protowire"
|
|
||||||
"google.golang.org/protobuf/reflect/protoreflect"
|
"google.golang.org/protobuf/reflect/protoreflect"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Equal reports whether two messages are equal.
|
// Equal reports whether two messages are equal,
|
||||||
// If two messages marshal to the same bytes under deterministic serialization,
|
// by recursively comparing the fields of the message.
|
||||||
// then Equal is guaranteed to report true.
|
|
||||||
//
|
//
|
||||||
// Two messages are equal if they belong to the same message descriptor,
|
// - Bytes fields are equal if they contain identical bytes.
|
||||||
// have the same set of populated known and extension field values,
|
// Empty bytes (regardless of nil-ness) are considered equal.
|
||||||
// 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.
|
|
||||||
//
|
//
|
||||||
// Scalar values are compared with the equivalent of the == operator in Go,
|
// - Floating-point fields are equal if they contain the same value.
|
||||||
// except bytes values which are compared using bytes.Equal and
|
// Unlike the == operator, a NaN is equal to another NaN.
|
||||||
// floating point values which specially treat NaNs as equal.
|
//
|
||||||
// Message values are compared by recursively calling Equal.
|
// - Other scalar fields are equal if they contain the same value.
|
||||||
// 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
|
// - Message fields are equal if they have
|
||||||
// for each key is also equal.
|
// 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 {
|
func Equal(x, y Message) bool {
|
||||||
if x == nil || y == nil {
|
if x == nil || y == nil {
|
||||||
return x == nil && y == nil
|
return x == nil && y == nil
|
||||||
@ -42,130 +51,7 @@ func Equal(x, y Message) bool {
|
|||||||
if mx.IsValid() != my.IsValid() {
|
if mx.IsValid() != my.IsValid() {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return equalMessage(mx, my)
|
vx := protoreflect.ValueOfMessage(mx)
|
||||||
}
|
vy := protoreflect.ValueOfMessage(my)
|
||||||
|
return vx.Equal(vy)
|
||||||
// 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)
|
|
||||||
}
|
}
|
||||||
|
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) {
|
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 {
|
if fd.IsPacked() && list.Len() > 0 {
|
||||||
content := 0
|
content := 0
|
||||||
for i, llen := 0, list.Len(); i < llen; i++ {
|
for i, llen := 0, list.Len(); i < llen; i++ {
|
||||||
content += o.sizeSingular(num, fd.Kind(), list.Get(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++ {
|
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
|
return size
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o MarshalOptions) sizeMap(num protowire.Number, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) (size int) {
|
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 {
|
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))
|
size += protowire.SizeBytes(o.sizeField(fd.MapKey(), key.Value()) + o.sizeField(fd.MapValue(), value))
|
||||||
return true
|
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)
|
b = p.appendSingularField(b, "source_code_info", (*SourcePath).appendSourceCodeInfo)
|
||||||
case 12:
|
case 12:
|
||||||
b = p.appendSingularField(b, "syntax", nil)
|
b = p.appendSingularField(b, "syntax", nil)
|
||||||
|
case 13:
|
||||||
|
b = p.appendSingularField(b, "edition", nil)
|
||||||
}
|
}
|
||||||
return b
|
return b
|
||||||
}
|
}
|
||||||
@ -236,6 +238,8 @@ func (p *SourcePath) appendMessageOptions(b []byte) []byte {
|
|||||||
b = p.appendSingularField(b, "deprecated", nil)
|
b = p.appendSingularField(b, "deprecated", nil)
|
||||||
case 7:
|
case 7:
|
||||||
b = p.appendSingularField(b, "map_entry", nil)
|
b = p.appendSingularField(b, "map_entry", nil)
|
||||||
|
case 11:
|
||||||
|
b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil)
|
||||||
case 999:
|
case 999:
|
||||||
b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
|
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)
|
b = p.appendSingularField(b, "allow_alias", nil)
|
||||||
case 3:
|
case 3:
|
||||||
b = p.appendSingularField(b, "deprecated", nil)
|
b = p.appendSingularField(b, "deprecated", nil)
|
||||||
|
case 6:
|
||||||
|
b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil)
|
||||||
case 999:
|
case 999:
|
||||||
b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
|
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)
|
b = p.appendSingularField(b, "jstype", nil)
|
||||||
case 5:
|
case 5:
|
||||||
b = p.appendSingularField(b, "lazy", nil)
|
b = p.appendSingularField(b, "lazy", nil)
|
||||||
|
case 15:
|
||||||
|
b = p.appendSingularField(b, "unverified_lazy", nil)
|
||||||
case 3:
|
case 3:
|
||||||
b = p.appendSingularField(b, "deprecated", nil)
|
b = p.appendSingularField(b, "deprecated", nil)
|
||||||
case 10:
|
case 10:
|
||||||
b = p.appendSingularField(b, "weak", nil)
|
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:
|
case 999:
|
||||||
b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
|
b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
|
||||||
}
|
}
|
||||||
@ -404,6 +420,10 @@ func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte {
|
|||||||
switch (*p)[0] {
|
switch (*p)[0] {
|
||||||
case 999:
|
case 999:
|
||||||
b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption)
|
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
|
return b
|
||||||
}
|
}
|
||||||
@ -459,3 +479,24 @@ func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte {
|
|||||||
}
|
}
|
||||||
return b
|
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.
|
// be preserved in marshaling or other operations.
|
||||||
IsValid() bool
|
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.
|
// This method may return nil.
|
||||||
//
|
//
|
||||||
// The returned methods type is identical to
|
// 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.
|
// // Append a 0 to a "repeated int32" field.
|
||||||
// // Since the Value returned by Mutable is guaranteed to alias
|
// // Since the Value returned by Mutable is guaranteed to alias
|
||||||
// // the source message, modifying the Value modifies the message.
|
// // 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,
|
// // Assign [0] to a "repeated int32" field by creating a new Value,
|
||||||
// // modifying it, and assigning it.
|
// // modifying it, and assigning it.
|
||||||
// list := message.NewField(fieldDesc).(List)
|
// list := message.NewField(fieldDesc).List()
|
||||||
// list.Append(protoreflect.ValueOfInt32(0))
|
// list.Append(protoreflect.ValueOfInt32(0))
|
||||||
// message.Set(fieldDesc, list)
|
// message.Set(fieldDesc, list)
|
||||||
// // ERROR: Since it is not defined whether Set aliases the source,
|
// // 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.
|
// It is a variable so that the behavior is easily overridden in another file.
|
||||||
var ignoreConflict = func(d protoreflect.Descriptor, err error) bool {
|
var ignoreConflict = func(d protoreflect.Descriptor, err error) bool {
|
||||||
const env = "GOLANG_PROTOBUF_REGISTRATION_CONFLICT"
|
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
|
policy := conflictPolicy
|
||||||
if v := os.Getenv(env); v != "" {
|
if v := os.Getenv(env); v != "" {
|
||||||
policy = 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,
|
// The Timestamp message represents a timestamp,
|
||||||
// an instant in time since the Unix epoch (January 1st, 1970).
|
// 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
|
// The AsTime method can be used to convert a Timestamp message to a
|
||||||
// standard Go time.Time value in UTC:
|
// standard Go time.Time value in UTC:
|
||||||
@ -59,8 +58,7 @@
|
|||||||
// ... // handle error
|
// ... // handle error
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
//
|
// # Conversion from a Go Time
|
||||||
// Conversion from a Go Time
|
|
||||||
//
|
//
|
||||||
// The timestamppb.New function can be used to construct a Timestamp message
|
// The timestamppb.New function can be used to construct a Timestamp message
|
||||||
// from a standard Go time.Time value:
|
// from a standard Go time.Time value:
|
||||||
@ -72,7 +70,6 @@
|
|||||||
//
|
//
|
||||||
// ts := timestamppb.Now()
|
// ts := timestamppb.Now()
|
||||||
// ... // make use of ts as a *timestamppb.Timestamp
|
// ... // make use of ts as a *timestamppb.Timestamp
|
||||||
//
|
|
||||||
package timestamppb
|
package timestamppb
|
||||||
|
|
||||||
import (
|
import (
|
||||||
@ -101,52 +98,50 @@ import (
|
|||||||
//
|
//
|
||||||
// Example 1: Compute Timestamp from POSIX `time()`.
|
// Example 1: Compute Timestamp from POSIX `time()`.
|
||||||
//
|
//
|
||||||
// Timestamp timestamp;
|
// Timestamp timestamp;
|
||||||
// timestamp.set_seconds(time(NULL));
|
// timestamp.set_seconds(time(NULL));
|
||||||
// timestamp.set_nanos(0);
|
// timestamp.set_nanos(0);
|
||||||
//
|
//
|
||||||
// Example 2: Compute Timestamp from POSIX `gettimeofday()`.
|
// Example 2: Compute Timestamp from POSIX `gettimeofday()`.
|
||||||
//
|
//
|
||||||
// struct timeval tv;
|
// struct timeval tv;
|
||||||
// gettimeofday(&tv, NULL);
|
// gettimeofday(&tv, NULL);
|
||||||
//
|
//
|
||||||
// Timestamp timestamp;
|
// Timestamp timestamp;
|
||||||
// timestamp.set_seconds(tv.tv_sec);
|
// timestamp.set_seconds(tv.tv_sec);
|
||||||
// timestamp.set_nanos(tv.tv_usec * 1000);
|
// timestamp.set_nanos(tv.tv_usec * 1000);
|
||||||
//
|
//
|
||||||
// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
|
// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
|
||||||
//
|
//
|
||||||
// FILETIME ft;
|
// FILETIME ft;
|
||||||
// GetSystemTimeAsFileTime(&ft);
|
// GetSystemTimeAsFileTime(&ft);
|
||||||
// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
|
// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
|
||||||
//
|
//
|
||||||
// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
|
// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
|
||||||
// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
|
// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
|
||||||
// Timestamp timestamp;
|
// Timestamp timestamp;
|
||||||
// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
|
// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
|
||||||
// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
|
// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
|
||||||
//
|
//
|
||||||
// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
|
// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
|
||||||
//
|
//
|
||||||
// long millis = System.currentTimeMillis();
|
// long millis = System.currentTimeMillis();
|
||||||
//
|
|
||||||
// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
|
|
||||||
// .setNanos((int) ((millis % 1000) * 1000000)).build();
|
|
||||||
//
|
//
|
||||||
|
// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
|
||||||
|
// .setNanos((int) ((millis % 1000) * 1000000)).build();
|
||||||
//
|
//
|
||||||
// Example 5: Compute Timestamp from Java `Instant.now()`.
|
// Example 5: Compute Timestamp from Java `Instant.now()`.
|
||||||
//
|
//
|
||||||
// Instant now = Instant.now();
|
// Instant now = Instant.now();
|
||||||
//
|
|
||||||
// Timestamp timestamp =
|
|
||||||
// Timestamp.newBuilder().setSeconds(now.getEpochSecond())
|
|
||||||
// .setNanos(now.getNano()).build();
|
|
||||||
//
|
//
|
||||||
|
// Timestamp timestamp =
|
||||||
|
// Timestamp.newBuilder().setSeconds(now.getEpochSecond())
|
||||||
|
// .setNanos(now.getNano()).build();
|
||||||
//
|
//
|
||||||
// Example 6: Compute Timestamp from current time in Python.
|
// Example 6: Compute Timestamp from current time in Python.
|
||||||
//
|
//
|
||||||
// timestamp = Timestamp()
|
// timestamp = Timestamp()
|
||||||
// timestamp.GetCurrentTime()
|
// timestamp.GetCurrentTime()
|
||||||
//
|
//
|
||||||
// # JSON Mapping
|
// # JSON Mapping
|
||||||
//
|
//
|
||||||
@ -172,10 +167,8 @@ import (
|
|||||||
// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
|
// [`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 time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
|
||||||
// the Joda Time's [`ISODateTimeFormat.dateTime()`](
|
// 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.
|
// ) to obtain a formatter capable of generating timestamps in this format.
|
||||||
//
|
|
||||||
//
|
|
||||||
type Timestamp struct {
|
type Timestamp struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
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/cli
|
||||||
github.com/cyrilix/robocar-base/service
|
github.com/cyrilix/robocar-base/service
|
||||||
github.com/cyrilix/robocar-base/testtools
|
github.com/cyrilix/robocar-base/testtools
|
||||||
# github.com/cyrilix/robocar-protobuf/go v1.3.0
|
# github.com/cyrilix/robocar-protobuf/go v1.4.0
|
||||||
## explicit; go 1.18
|
## explicit; go 1.21
|
||||||
github.com/cyrilix/robocar-protobuf/go/events
|
github.com/cyrilix/robocar-protobuf/go/events
|
||||||
# github.com/eclipse/paho.mqtt.golang v1.4.1
|
# github.com/eclipse/paho.mqtt.golang v1.4.1
|
||||||
## explicit; go 1.14
|
## explicit; go 1.14
|
||||||
github.com/eclipse/paho.mqtt.golang
|
github.com/eclipse/paho.mqtt.golang
|
||||||
github.com/eclipse/paho.mqtt.golang/packets
|
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
|
# github.com/gorilla/websocket v1.4.2
|
||||||
## explicit; go 1.12
|
## explicit; go 1.12
|
||||||
github.com/gorilla/websocket
|
github.com/gorilla/websocket
|
||||||
@ -38,7 +35,7 @@ golang.org/x/net/proxy
|
|||||||
# golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
|
# golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
|
||||||
## explicit
|
## explicit
|
||||||
golang.org/x/sync/semaphore
|
golang.org/x/sync/semaphore
|
||||||
# google.golang.org/protobuf v1.28.1
|
# google.golang.org/protobuf v1.31.0
|
||||||
## explicit; go 1.11
|
## explicit; go 1.11
|
||||||
google.golang.org/protobuf/encoding/prototext
|
google.golang.org/protobuf/encoding/prototext
|
||||||
google.golang.org/protobuf/encoding/protowire
|
google.golang.org/protobuf/encoding/protowire
|
||||||
|
Loading…
x
Reference in New Issue
Block a user