From 5b864a14ce282770177e2dd5968054b0d851f855 Mon Sep 17 00:00:00 2001 From: Chris Roche Date: Thu, 14 Sep 2023 12:34:07 -0700 Subject: [PATCH] Conformance: support for multiple uniques (#49) Follow up to bufbuild/protovalidate#91 to ensure that messages containing multiple repeated fields of different types with the `unique` constraint do not result in a runtime error. Closes #37 --- Makefile | 2 +- go.mod | 10 +- go.sum | 20 +- internal/constraints/cache.go | 7 +- internal/constraints/cache_test.go | 4 +- .../validate/conformance/cases/repeated.pb.go | 471 ++++++++++-------- .../gen/tests/example/v1/validations.pb.go | 102 ++-- proto/buf.lock | 8 +- proto/tests/example/v1/validations.proto | 4 +- 9 files changed, 348 insertions(+), 280 deletions(-) diff --git a/Makefile b/Makefile index 59a0719..da1af02 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ ARGS ?= --strict --strict_message --strict_error # Set to use a different version of protovalidate-conformance. # Should be kept in sync with the version referenced in proto/buf.lock and # 'buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go' in go.mod. -CONFORMANCE_VERSION ?= v0.4.2 +CONFORMANCE_VERSION ?= v0.4.3 .PHONY: help help: ## Describe useful make targets diff --git a/go.mod b/go.mod index 1676af1..f741f53 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/bufbuild/protovalidate-go go 1.18 require ( - buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.31.0-20230830185350-7a34d6557349.1 + buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.31.0-20230914171853-63dfe56cc2c4.1 github.com/envoyproxy/protoc-gen-validate v1.0.2 github.com/google/cel-go v0.18.0 github.com/stretchr/testify v1.8.4 @@ -17,10 +17,10 @@ require ( github.com/kr/text v0.2.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/stoewer/go-strcase v1.3.0 // indirect - golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 // indirect - golang.org/x/text v0.10.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230803162519-f966b187b2e5 // indirect + golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect + golang.org/x/text v0.13.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230913181813-007df8e322eb // indirect gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 2e31520..6ee5263 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.31.0-20230830185350-7a34d6557349.1 h1:EJ219uXJze+1BiAeTcr74DLurguVNNvhiA9wyy/SK+M= -buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.31.0-20230830185350-7a34d6557349.1/go.mod h1:xafc+XIsTxTy76GJQ1TKgvJWsSugFBqMaN27WhUblew= +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.31.0-20230914171853-63dfe56cc2c4.1 h1:2gmp+PRca1fqQHf/WMKOgu9inVb0R0N07TucgY3QZCQ= +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.31.0-20230914171853-63dfe56cc2c4.1/go.mod h1:xafc+XIsTxTy76GJQ1TKgvJWsSugFBqMaN27WhUblew= github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230512164433-5d1fd1a340c9 h1:goHVqTbFX3AIo0tzGr14pgfAW2ZfPChKO21Z9MGf/gk= github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230512164433-5d1fd1a340c9/go.mod h1:pSwJ0fSY5KhvocuWSx4fz3BA8OrA1bQn+K1Eli3BRwM= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -31,15 +31,15 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 h1:k/i9J1pBpvlfR+9QsetwPyERsqu1GIbi967PQMq3Ivc= -golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= -golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58= -golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g= +golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5 h1:nIgk/EEq3/YlnmVVXVnm14rC2oxgs1o0ong4sD/rd44= -google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5/go.mod h1:5DZzOUPCLYL3mNkQ0ms0F3EuUNZ7py1Bqeq6sxzI7/Q= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230803162519-f966b187b2e5 h1:eSaPbMR4T7WfH9FvABk36NBMacoTUKdWCvV0dx+KfOg= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230803162519-f966b187b2e5/go.mod h1:zBEcrKX2ZOcEkHWxBPAIvYUWOKKMIhYcmNiUIu2ji3I= +google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb h1:lK0oleSc7IQsUxO3U5TjL9DWlsxpEBemh+zpB7IqhWI= +google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230913181813-007df8e322eb h1:Isk1sSH7bovx8Rti2wZK0UZF6oraBDK74uoyLEEVFN0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230913181813-007df8e322eb/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= diff --git a/internal/constraints/cache.go b/internal/constraints/cache.go index eb805c4..bb2edf7 100644 --- a/internal/constraints/cache.go +++ b/internal/constraints/cache.go @@ -176,12 +176,9 @@ func (c *Cache) getCELType(fieldDesc protoreflect.FieldDescriptor, forItems bool if !forItems { switch { case fieldDesc.IsMap(): - return cel.MapType( - c.getCELType(fieldDesc.MapKey(), true), - c.getCELType(fieldDesc.MapValue(), true), - ) + return cel.MapType(cel.DynType, cel.DynType) case fieldDesc.IsList(): - return cel.ListType(c.getCELType(fieldDesc, true)) + return cel.ListType(cel.DynType) } } diff --git a/internal/constraints/cache_test.go b/internal/constraints/cache_test.go index c7abef2..e7fa495 100644 --- a/internal/constraints/cache_test.go +++ b/internal/constraints/cache_test.go @@ -208,11 +208,11 @@ func TestCache_GetCELType(t *testing.T) { }{ { desc: getFieldDesc(t, &cases.MapNone{}, "val"), - ex: cel.MapType(cel.UintType, cel.BoolType), + ex: cel.MapType(cel.DynType, cel.DynType), }, { desc: getFieldDesc(t, &cases.RepeatedNone{}, "val"), - ex: cel.ListType(cel.IntType), + ex: cel.ListType(cel.DynType), }, { desc: getFieldDesc(t, &cases.RepeatedNone{}, "val"), diff --git a/internal/gen/buf/validate/conformance/cases/repeated.pb.go b/internal/gen/buf/validate/conformance/cases/repeated.pb.go index 8271594..fda137a 100644 --- a/internal/gen/buf/validate/conformance/cases/repeated.pb.go +++ b/internal/gen/buf/validate/conformance/cases/repeated.pb.go @@ -133,7 +133,7 @@ func (x RepeatedEmbeddedEnumIn_AnotherInEnum) Number() protoreflect.EnumNumber { // Deprecated: Use RepeatedEmbeddedEnumIn_AnotherInEnum.Descriptor instead. func (RepeatedEmbeddedEnumIn_AnotherInEnum) EnumDescriptor() ([]byte, []int) { - return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{16, 0} + return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{17, 0} } type RepeatedEmbeddedEnumNotIn_AnotherNotInEnum int32 @@ -182,7 +182,7 @@ func (x RepeatedEmbeddedEnumNotIn_AnotherNotInEnum) Number() protoreflect.EnumNu // Deprecated: Use RepeatedEmbeddedEnumNotIn_AnotherNotInEnum.Descriptor instead. func (RepeatedEmbeddedEnumNotIn_AnotherNotInEnum) EnumDescriptor() ([]byte, []int) { - return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{17, 0} + return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{18, 0} } type Embed struct { @@ -608,6 +608,61 @@ func (x *RepeatedUnique) GetVal() []string { return nil } +type RepeatedMultipleUnique struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + A []string `protobuf:"bytes,1,rep,name=a,proto3" json:"a,omitempty"` + B []int32 `protobuf:"varint,2,rep,packed,name=b,proto3" json:"b,omitempty"` +} + +func (x *RepeatedMultipleUnique) Reset() { + *x = RepeatedMultipleUnique{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RepeatedMultipleUnique) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RepeatedMultipleUnique) ProtoMessage() {} + +func (x *RepeatedMultipleUnique) ProtoReflect() protoreflect.Message { + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RepeatedMultipleUnique.ProtoReflect.Descriptor instead. +func (*RepeatedMultipleUnique) Descriptor() ([]byte, []int) { + return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{9} +} + +func (x *RepeatedMultipleUnique) GetA() []string { + if x != nil { + return x.A + } + return nil +} + +func (x *RepeatedMultipleUnique) GetB() []int32 { + if x != nil { + return x.B + } + return nil +} + type RepeatedItemRule struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -619,7 +674,7 @@ type RepeatedItemRule struct { func (x *RepeatedItemRule) Reset() { *x = RepeatedItemRule{} if protoimpl.UnsafeEnabled { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[9] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -632,7 +687,7 @@ func (x *RepeatedItemRule) String() string { func (*RepeatedItemRule) ProtoMessage() {} func (x *RepeatedItemRule) ProtoReflect() protoreflect.Message { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[9] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -645,7 +700,7 @@ func (x *RepeatedItemRule) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedItemRule.ProtoReflect.Descriptor instead. func (*RepeatedItemRule) Descriptor() ([]byte, []int) { - return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{9} + return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{10} } func (x *RepeatedItemRule) GetVal() []float32 { @@ -666,7 +721,7 @@ type RepeatedItemPattern struct { func (x *RepeatedItemPattern) Reset() { *x = RepeatedItemPattern{} if protoimpl.UnsafeEnabled { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[10] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -679,7 +734,7 @@ func (x *RepeatedItemPattern) String() string { func (*RepeatedItemPattern) ProtoMessage() {} func (x *RepeatedItemPattern) ProtoReflect() protoreflect.Message { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[10] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -692,7 +747,7 @@ func (x *RepeatedItemPattern) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedItemPattern.ProtoReflect.Descriptor instead. func (*RepeatedItemPattern) Descriptor() ([]byte, []int) { - return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{10} + return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{11} } func (x *RepeatedItemPattern) GetVal() []string { @@ -713,7 +768,7 @@ type RepeatedEmbedSkip struct { func (x *RepeatedEmbedSkip) Reset() { *x = RepeatedEmbedSkip{} if protoimpl.UnsafeEnabled { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[11] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -726,7 +781,7 @@ func (x *RepeatedEmbedSkip) String() string { func (*RepeatedEmbedSkip) ProtoMessage() {} func (x *RepeatedEmbedSkip) ProtoReflect() protoreflect.Message { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[11] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -739,7 +794,7 @@ func (x *RepeatedEmbedSkip) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedEmbedSkip.ProtoReflect.Descriptor instead. func (*RepeatedEmbedSkip) Descriptor() ([]byte, []int) { - return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{11} + return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{12} } func (x *RepeatedEmbedSkip) GetVal() []*Embed { @@ -760,7 +815,7 @@ type RepeatedItemIn struct { func (x *RepeatedItemIn) Reset() { *x = RepeatedItemIn{} if protoimpl.UnsafeEnabled { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[12] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -773,7 +828,7 @@ func (x *RepeatedItemIn) String() string { func (*RepeatedItemIn) ProtoMessage() {} func (x *RepeatedItemIn) ProtoReflect() protoreflect.Message { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[12] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -786,7 +841,7 @@ func (x *RepeatedItemIn) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedItemIn.ProtoReflect.Descriptor instead. func (*RepeatedItemIn) Descriptor() ([]byte, []int) { - return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{12} + return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{13} } func (x *RepeatedItemIn) GetVal() []string { @@ -807,7 +862,7 @@ type RepeatedItemNotIn struct { func (x *RepeatedItemNotIn) Reset() { *x = RepeatedItemNotIn{} if protoimpl.UnsafeEnabled { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[13] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -820,7 +875,7 @@ func (x *RepeatedItemNotIn) String() string { func (*RepeatedItemNotIn) ProtoMessage() {} func (x *RepeatedItemNotIn) ProtoReflect() protoreflect.Message { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[13] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -833,7 +888,7 @@ func (x *RepeatedItemNotIn) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedItemNotIn.ProtoReflect.Descriptor instead. func (*RepeatedItemNotIn) Descriptor() ([]byte, []int) { - return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{13} + return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{14} } func (x *RepeatedItemNotIn) GetVal() []string { @@ -854,7 +909,7 @@ type RepeatedEnumIn struct { func (x *RepeatedEnumIn) Reset() { *x = RepeatedEnumIn{} if protoimpl.UnsafeEnabled { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[14] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -867,7 +922,7 @@ func (x *RepeatedEnumIn) String() string { func (*RepeatedEnumIn) ProtoMessage() {} func (x *RepeatedEnumIn) ProtoReflect() protoreflect.Message { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[14] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -880,7 +935,7 @@ func (x *RepeatedEnumIn) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedEnumIn.ProtoReflect.Descriptor instead. func (*RepeatedEnumIn) Descriptor() ([]byte, []int) { - return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{14} + return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{15} } func (x *RepeatedEnumIn) GetVal() []AnEnum { @@ -901,7 +956,7 @@ type RepeatedEnumNotIn struct { func (x *RepeatedEnumNotIn) Reset() { *x = RepeatedEnumNotIn{} if protoimpl.UnsafeEnabled { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[15] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -914,7 +969,7 @@ func (x *RepeatedEnumNotIn) String() string { func (*RepeatedEnumNotIn) ProtoMessage() {} func (x *RepeatedEnumNotIn) ProtoReflect() protoreflect.Message { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[15] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -927,7 +982,7 @@ func (x *RepeatedEnumNotIn) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedEnumNotIn.ProtoReflect.Descriptor instead. func (*RepeatedEnumNotIn) Descriptor() ([]byte, []int) { - return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{15} + return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{16} } func (x *RepeatedEnumNotIn) GetVal() []AnEnum { @@ -948,7 +1003,7 @@ type RepeatedEmbeddedEnumIn struct { func (x *RepeatedEmbeddedEnumIn) Reset() { *x = RepeatedEmbeddedEnumIn{} if protoimpl.UnsafeEnabled { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[16] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -961,7 +1016,7 @@ func (x *RepeatedEmbeddedEnumIn) String() string { func (*RepeatedEmbeddedEnumIn) ProtoMessage() {} func (x *RepeatedEmbeddedEnumIn) ProtoReflect() protoreflect.Message { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[16] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -974,7 +1029,7 @@ func (x *RepeatedEmbeddedEnumIn) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedEmbeddedEnumIn.ProtoReflect.Descriptor instead. func (*RepeatedEmbeddedEnumIn) Descriptor() ([]byte, []int) { - return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{16} + return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{17} } func (x *RepeatedEmbeddedEnumIn) GetVal() []RepeatedEmbeddedEnumIn_AnotherInEnum { @@ -995,7 +1050,7 @@ type RepeatedEmbeddedEnumNotIn struct { func (x *RepeatedEmbeddedEnumNotIn) Reset() { *x = RepeatedEmbeddedEnumNotIn{} if protoimpl.UnsafeEnabled { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[17] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1008,7 +1063,7 @@ func (x *RepeatedEmbeddedEnumNotIn) String() string { func (*RepeatedEmbeddedEnumNotIn) ProtoMessage() {} func (x *RepeatedEmbeddedEnumNotIn) ProtoReflect() protoreflect.Message { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[17] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1021,7 +1076,7 @@ func (x *RepeatedEmbeddedEnumNotIn) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedEmbeddedEnumNotIn.ProtoReflect.Descriptor instead. func (*RepeatedEmbeddedEnumNotIn) Descriptor() ([]byte, []int) { - return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{17} + return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{18} } func (x *RepeatedEmbeddedEnumNotIn) GetVal() []RepeatedEmbeddedEnumNotIn_AnotherNotInEnum { @@ -1042,7 +1097,7 @@ type RepeatedAnyIn struct { func (x *RepeatedAnyIn) Reset() { *x = RepeatedAnyIn{} if protoimpl.UnsafeEnabled { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[18] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1055,7 +1110,7 @@ func (x *RepeatedAnyIn) String() string { func (*RepeatedAnyIn) ProtoMessage() {} func (x *RepeatedAnyIn) ProtoReflect() protoreflect.Message { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[18] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1068,7 +1123,7 @@ func (x *RepeatedAnyIn) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedAnyIn.ProtoReflect.Descriptor instead. func (*RepeatedAnyIn) Descriptor() ([]byte, []int) { - return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{18} + return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{19} } func (x *RepeatedAnyIn) GetVal() []*anypb.Any { @@ -1089,7 +1144,7 @@ type RepeatedAnyNotIn struct { func (x *RepeatedAnyNotIn) Reset() { *x = RepeatedAnyNotIn{} if protoimpl.UnsafeEnabled { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[19] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1102,7 +1157,7 @@ func (x *RepeatedAnyNotIn) String() string { func (*RepeatedAnyNotIn) ProtoMessage() {} func (x *RepeatedAnyNotIn) ProtoReflect() protoreflect.Message { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[19] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1115,7 +1170,7 @@ func (x *RepeatedAnyNotIn) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedAnyNotIn.ProtoReflect.Descriptor instead. func (*RepeatedAnyNotIn) Descriptor() ([]byte, []int) { - return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{19} + return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{20} } func (x *RepeatedAnyNotIn) GetVal() []*anypb.Any { @@ -1136,7 +1191,7 @@ type RepeatedMinAndItemLen struct { func (x *RepeatedMinAndItemLen) Reset() { *x = RepeatedMinAndItemLen{} if protoimpl.UnsafeEnabled { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[20] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1149,7 +1204,7 @@ func (x *RepeatedMinAndItemLen) String() string { func (*RepeatedMinAndItemLen) ProtoMessage() {} func (x *RepeatedMinAndItemLen) ProtoReflect() protoreflect.Message { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[20] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1162,7 +1217,7 @@ func (x *RepeatedMinAndItemLen) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedMinAndItemLen.ProtoReflect.Descriptor instead. func (*RepeatedMinAndItemLen) Descriptor() ([]byte, []int) { - return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{20} + return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{21} } func (x *RepeatedMinAndItemLen) GetVal() []string { @@ -1183,7 +1238,7 @@ type RepeatedMinAndMaxItemLen struct { func (x *RepeatedMinAndMaxItemLen) Reset() { *x = RepeatedMinAndMaxItemLen{} if protoimpl.UnsafeEnabled { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[21] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1196,7 +1251,7 @@ func (x *RepeatedMinAndMaxItemLen) String() string { func (*RepeatedMinAndMaxItemLen) ProtoMessage() {} func (x *RepeatedMinAndMaxItemLen) ProtoReflect() protoreflect.Message { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[21] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1209,7 +1264,7 @@ func (x *RepeatedMinAndMaxItemLen) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedMinAndMaxItemLen.ProtoReflect.Descriptor instead. func (*RepeatedMinAndMaxItemLen) Descriptor() ([]byte, []int) { - return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{21} + return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{22} } func (x *RepeatedMinAndMaxItemLen) GetVal() []string { @@ -1230,7 +1285,7 @@ type RepeatedDuration struct { func (x *RepeatedDuration) Reset() { *x = RepeatedDuration{} if protoimpl.UnsafeEnabled { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[22] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1243,7 +1298,7 @@ func (x *RepeatedDuration) String() string { func (*RepeatedDuration) ProtoMessage() {} func (x *RepeatedDuration) ProtoReflect() protoreflect.Message { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[22] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1256,7 +1311,7 @@ func (x *RepeatedDuration) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedDuration.ProtoReflect.Descriptor instead. func (*RepeatedDuration) Descriptor() ([]byte, []int) { - return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{22} + return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{23} } func (x *RepeatedDuration) GetVal() []*durationpb.Duration { @@ -1277,7 +1332,7 @@ type RepeatedExactIgnore struct { func (x *RepeatedExactIgnore) Reset() { *x = RepeatedExactIgnore{} if protoimpl.UnsafeEnabled { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[23] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1290,7 +1345,7 @@ func (x *RepeatedExactIgnore) String() string { func (*RepeatedExactIgnore) ProtoMessage() {} func (x *RepeatedExactIgnore) ProtoReflect() protoreflect.Message { - mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[23] + mi := &file_buf_validate_conformance_cases_repeated_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1303,7 +1358,7 @@ func (x *RepeatedExactIgnore) ProtoReflect() protoreflect.Message { // Deprecated: Use RepeatedExactIgnore.ProtoReflect.Descriptor instead. func (*RepeatedExactIgnore) Descriptor() ([]byte, []int) { - return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{23} + return file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP(), []int{24} } func (x *RepeatedExactIgnore) GetVal() []uint32 { @@ -1362,123 +1417,128 @@ var file_buf_validate_conformance_cases_repeated_proto_rawDesc = []byte{ 0x08, 0x03, 0x10, 0x03, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x0e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x92, 0x01, 0x02, - 0x18, 0x01, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x35, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x03, 0x76, - 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x0f, 0xba, 0x48, 0x0c, 0x92, 0x01, 0x09, - 0x22, 0x07, 0x0a, 0x05, 0x25, 0x00, 0x00, 0x00, 0x00, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x44, - 0x0a, 0x13, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x2d, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x42, 0x1b, 0xba, 0x48, 0x18, 0x92, 0x01, 0x15, 0x22, 0x13, 0x72, 0x11, 0x32, 0x0f, - 0x28, 0x3f, 0x69, 0x29, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x2b, 0x24, 0x52, - 0x03, 0x76, 0x61, 0x6c, 0x22, 0x59, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x45, 0x6d, 0x62, 0x65, 0x64, 0x53, 0x6b, 0x69, 0x70, 0x12, 0x44, 0x0a, 0x03, 0x76, 0x61, 0x6c, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, - 0x65, 0x2e, 0x63, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x42, 0x0b, 0xba, - 0x48, 0x08, 0x92, 0x01, 0x05, 0x22, 0x03, 0xc0, 0x01, 0x01, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, - 0x38, 0x0a, 0x0e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x49, - 0x6e, 0x12, 0x26, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x14, - 0xba, 0x48, 0x11, 0x92, 0x01, 0x0e, 0x22, 0x0c, 0x72, 0x0a, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x52, - 0x03, 0x62, 0x61, 0x72, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x3b, 0x0a, 0x11, 0x52, 0x65, 0x70, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x26, - 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x14, 0xba, 0x48, 0x11, - 0x92, 0x01, 0x0e, 0x22, 0x0c, 0x72, 0x0a, 0x5a, 0x03, 0x66, 0x6f, 0x6f, 0x5a, 0x03, 0x62, 0x61, - 0x72, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x5a, 0x0a, 0x0e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x49, 0x6e, 0x12, 0x48, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, - 0x2e, 0x63, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x0e, 0xba, - 0x48, 0x0b, 0x92, 0x01, 0x08, 0x22, 0x06, 0x82, 0x01, 0x03, 0x1a, 0x01, 0x00, 0x52, 0x03, 0x76, - 0x61, 0x6c, 0x22, 0x5d, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6e, - 0x75, 0x6d, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x48, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, - 0x63, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x0e, 0xba, 0x48, - 0x0b, 0x92, 0x01, 0x08, 0x22, 0x06, 0x82, 0x01, 0x03, 0x22, 0x01, 0x00, 0x52, 0x03, 0x76, 0x61, - 0x6c, 0x22, 0xe0, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6d, - 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x49, 0x6e, 0x12, 0x66, 0x0a, 0x03, - 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x2e, + 0x18, 0x01, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x48, 0x0a, 0x16, 0x52, 0x65, 0x70, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x55, 0x6e, 0x69, 0x71, 0x75, + 0x65, 0x12, 0x16, 0x0a, 0x01, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, + 0x05, 0x92, 0x01, 0x02, 0x18, 0x01, 0x52, 0x01, 0x61, 0x12, 0x16, 0x0a, 0x01, 0x62, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x05, 0x42, 0x08, 0xba, 0x48, 0x05, 0x92, 0x01, 0x02, 0x18, 0x01, 0x52, 0x01, + 0x62, 0x22, 0x35, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, + 0x6d, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x02, 0x42, 0x0f, 0xba, 0x48, 0x0c, 0x92, 0x01, 0x09, 0x22, 0x07, 0x0a, 0x05, 0x25, 0x00, + 0x00, 0x00, 0x00, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x44, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, + 0x2d, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x1b, 0xba, 0x48, + 0x18, 0x92, 0x01, 0x15, 0x22, 0x13, 0x72, 0x11, 0x32, 0x0f, 0x28, 0x3f, 0x69, 0x29, 0x5e, 0x5b, + 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x2b, 0x24, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x59, + 0x0a, 0x11, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x53, + 0x6b, 0x69, 0x70, 0x12, 0x44, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, + 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x63, 0x61, 0x73, 0x65, + 0x73, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x42, 0x0b, 0xba, 0x48, 0x08, 0x92, 0x01, 0x05, 0x22, + 0x03, 0xc0, 0x01, 0x01, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x38, 0x0a, 0x0e, 0x52, 0x65, 0x70, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x12, 0x26, 0x0a, 0x03, 0x76, + 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x14, 0xba, 0x48, 0x11, 0x92, 0x01, 0x0e, + 0x22, 0x0c, 0x72, 0x0a, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x52, 0x03, 0x62, 0x61, 0x72, 0x52, 0x03, + 0x76, 0x61, 0x6c, 0x22, 0x3b, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, + 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x26, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x14, 0xba, 0x48, 0x11, 0x92, 0x01, 0x0e, 0x22, 0x0c, 0x72, + 0x0a, 0x5a, 0x03, 0x66, 0x6f, 0x6f, 0x5a, 0x03, 0x62, 0x61, 0x72, 0x52, 0x03, 0x76, 0x61, 0x6c, + 0x22, 0x5a, 0x0a, 0x0e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, + 0x49, 0x6e, 0x12, 0x48, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x26, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x63, 0x61, 0x73, 0x65, 0x73, + 0x2e, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x0e, 0xba, 0x48, 0x0b, 0x92, 0x01, 0x08, 0x22, + 0x06, 0x82, 0x01, 0x03, 0x1a, 0x01, 0x00, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x5d, 0x0a, 0x11, + 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x4e, 0x6f, 0x74, 0x49, + 0x6e, 0x12, 0x48, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x26, + 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x63, 0x6f, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x63, 0x61, 0x73, 0x65, 0x73, 0x2e, + 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x0e, 0xba, 0x48, 0x0b, 0x92, 0x01, 0x08, 0x22, 0x06, + 0x82, 0x01, 0x03, 0x22, 0x01, 0x00, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0xe0, 0x01, 0x0a, 0x16, + 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, + 0x45, 0x6e, 0x75, 0x6d, 0x49, 0x6e, 0x12, 0x66, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0e, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x63, + 0x61, 0x73, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6d, 0x62, + 0x65, 0x64, 0x64, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x49, 0x6e, 0x2e, 0x41, 0x6e, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x49, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x0e, 0xba, 0x48, 0x0b, 0x92, 0x01, + 0x08, 0x22, 0x06, 0x82, 0x01, 0x03, 0x1a, 0x01, 0x00, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x5e, + 0x0a, 0x0d, 0x41, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x1f, 0x0a, 0x1b, 0x41, 0x4e, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x4e, + 0x55, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x15, 0x0a, 0x11, 0x41, 0x4e, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x45, + 0x4e, 0x55, 0x4d, 0x5f, 0x41, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x4e, 0x4f, 0x54, 0x48, + 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x42, 0x10, 0x02, 0x22, 0xf8, + 0x01, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6d, 0x62, 0x65, 0x64, + 0x64, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x6c, 0x0a, 0x03, + 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x4a, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x63, 0x61, 0x73, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x49, - 0x6e, 0x2e, 0x41, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x42, - 0x0e, 0xba, 0x48, 0x0b, 0x92, 0x01, 0x08, 0x22, 0x06, 0x82, 0x01, 0x03, 0x1a, 0x01, 0x00, 0x52, - 0x03, 0x76, 0x61, 0x6c, 0x22, 0x5e, 0x0a, 0x0d, 0x41, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x49, - 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x4e, 0x4f, 0x54, 0x48, 0x45, 0x52, - 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x4e, 0x4f, 0x54, 0x48, 0x45, - 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x41, 0x10, 0x01, 0x12, 0x15, 0x0a, - 0x11, 0x41, 0x4e, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x4e, 0x55, 0x4d, - 0x5f, 0x42, 0x10, 0x02, 0x22, 0xf8, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x4e, 0x6f, 0x74, - 0x49, 0x6e, 0x12, 0x6c, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, - 0x4a, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x63, - 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x63, 0x61, 0x73, 0x65, 0x73, - 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, - 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x2e, 0x41, 0x6e, 0x6f, 0x74, 0x68, - 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x0e, 0xba, 0x48, 0x0b, - 0x92, 0x01, 0x08, 0x22, 0x06, 0x82, 0x01, 0x03, 0x22, 0x01, 0x00, 0x52, 0x03, 0x76, 0x61, 0x6c, - 0x22, 0x6d, 0x0a, 0x10, 0x41, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x49, 0x6e, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x4e, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, - 0x4e, 0x4f, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x4e, 0x4f, - 0x54, 0x48, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x4e, 0x55, 0x4d, - 0x5f, 0x41, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x4e, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, - 0x4e, 0x4f, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x42, 0x10, 0x02, 0x22, - 0x72, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x49, 0x6e, - 0x12, 0x61, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x74, 0x65, 0x64, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x4e, + 0x6f, 0x74, 0x49, 0x6e, 0x2e, 0x41, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x49, + 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x0e, 0xba, 0x48, 0x0b, 0x92, 0x01, 0x08, 0x22, 0x06, 0x82, + 0x01, 0x03, 0x22, 0x01, 0x00, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x6d, 0x0a, 0x10, 0x41, 0x6e, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x23, + 0x0a, 0x1f, 0x41, 0x4e, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x49, 0x4e, + 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x4e, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x4e, + 0x4f, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x41, 0x10, 0x01, 0x12, 0x19, + 0x0a, 0x15, 0x41, 0x4e, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x49, 0x4e, + 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x42, 0x10, 0x02, 0x22, 0x72, 0x0a, 0x0d, 0x52, 0x65, 0x70, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x49, 0x6e, 0x12, 0x61, 0x0a, 0x03, 0x76, 0x61, + 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x39, 0xba, + 0x48, 0x36, 0x92, 0x01, 0x33, 0x22, 0x31, 0xa2, 0x01, 0x2e, 0x12, 0x2c, 0x74, 0x79, 0x70, 0x65, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x41, 0x6e, 0x79, 0x42, 0x39, 0xba, 0x48, 0x36, 0x92, 0x01, 0x33, 0x22, 0x31, 0xa2, 0x01, 0x2e, - 0x12, 0x2c, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, - 0x76, 0x61, 0x6c, 0x22, 0x76, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x6e, 0x79, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x12, 0x62, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x3a, 0xba, 0x48, 0x37, 0x92, - 0x01, 0x34, 0x22, 0x32, 0xa2, 0x01, 0x2f, 0x1a, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x3a, 0x0a, 0x15, 0x52, - 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x41, 0x6e, 0x64, 0x49, 0x74, 0x65, - 0x6d, 0x4c, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x42, 0x0f, 0xba, 0x48, 0x0c, 0x92, 0x01, 0x09, 0x08, 0x01, 0x22, 0x05, 0x72, 0x03, 0x98, - 0x01, 0x03, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x38, 0x0a, 0x18, 0x52, 0x65, 0x70, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x41, 0x6e, 0x64, 0x4d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, - 0x4c, 0x65, 0x6e, 0x12, 0x1c, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x42, 0x0a, 0xba, 0x48, 0x07, 0x92, 0x01, 0x04, 0x08, 0x01, 0x10, 0x03, 0x52, 0x03, 0x76, 0x61, - 0x6c, 0x22, 0x52, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x11, 0xba, - 0x48, 0x0e, 0x92, 0x01, 0x0b, 0x22, 0x09, 0xaa, 0x01, 0x06, 0x32, 0x04, 0x10, 0xc0, 0x84, 0x3d, - 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x36, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x45, 0x78, 0x61, 0x63, 0x74, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x1f, 0x0a, 0x03, - 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x0d, 0xba, 0x48, 0x0a, 0xd0, 0x01, - 0x01, 0x92, 0x01, 0x04, 0x08, 0x03, 0x10, 0x03, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x2a, 0x3f, 0x0a, - 0x06, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x4e, 0x5f, 0x45, 0x4e, - 0x55, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x4e, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x58, 0x10, 0x01, 0x12, - 0x0d, 0x0a, 0x09, 0x41, 0x4e, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x59, 0x10, 0x02, 0x42, 0xa1, - 0x02, 0x0a, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, - 0x63, 0x61, 0x73, 0x65, 0x73, 0x42, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x50, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x62, 0x75, 0x66, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, - 0x63, 0x65, 0x2f, 0x63, 0x61, 0x73, 0x65, 0x73, 0xa2, 0x02, 0x04, 0x42, 0x56, 0x43, 0x43, 0xaa, - 0x02, 0x1e, 0x42, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x43, - 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x43, 0x61, 0x73, 0x65, 0x73, - 0xca, 0x02, 0x1e, 0x42, 0x75, 0x66, 0x5c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5c, - 0x43, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5c, 0x43, 0x61, 0x73, 0x65, - 0x73, 0xe2, 0x02, 0x2a, 0x42, 0x75, 0x66, 0x5c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x5c, 0x43, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5c, 0x43, 0x61, 0x73, - 0x65, 0x73, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x21, 0x42, 0x75, 0x66, 0x3a, 0x3a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x3a, - 0x43, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x3a, 0x3a, 0x43, 0x61, 0x73, - 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x76, 0x0a, + 0x10, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x4e, 0x6f, 0x74, 0x49, + 0x6e, 0x12, 0x62, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x3a, 0xba, 0x48, 0x37, 0x92, 0x01, 0x34, 0x22, 0x32, 0xa2, 0x01, + 0x2f, 0x1a, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x3a, 0x0a, 0x15, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x4d, 0x69, 0x6e, 0x41, 0x6e, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x6e, 0x12, 0x21, + 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x0f, 0xba, 0x48, 0x0c, + 0x92, 0x01, 0x09, 0x08, 0x01, 0x22, 0x05, 0x72, 0x03, 0x98, 0x01, 0x03, 0x52, 0x03, 0x76, 0x61, + 0x6c, 0x22, 0x38, 0x0a, 0x18, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x69, 0x6e, + 0x41, 0x6e, 0x64, 0x4d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x6e, 0x12, 0x1c, 0x0a, + 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x0a, 0xba, 0x48, 0x07, 0x92, + 0x01, 0x04, 0x08, 0x01, 0x10, 0x03, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x52, 0x0a, 0x10, 0x52, + 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3e, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x11, 0xba, 0x48, 0x0e, 0x92, 0x01, 0x0b, 0x22, + 0x09, 0xaa, 0x01, 0x06, 0x32, 0x04, 0x10, 0xc0, 0x84, 0x3d, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, + 0x36, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x78, 0x61, 0x63, 0x74, + 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x1f, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0d, 0x42, 0x0d, 0xba, 0x48, 0x0a, 0xd0, 0x01, 0x01, 0x92, 0x01, 0x04, 0x08, 0x03, + 0x10, 0x03, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x2a, 0x3f, 0x0a, 0x06, 0x41, 0x6e, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x4e, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x4e, + 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x58, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x4e, 0x5f, + 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x59, 0x10, 0x02, 0x42, 0xa1, 0x02, 0x0a, 0x22, 0x63, 0x6f, 0x6d, + 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x63, 0x6f, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x63, 0x61, 0x73, 0x65, 0x73, 0x42, + 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x50, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x75, 0x66, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, + 0x67, 0x65, 0x6e, 0x2f, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x63, 0x61, 0x73, + 0x65, 0x73, 0xa2, 0x02, 0x04, 0x42, 0x56, 0x43, 0x43, 0xaa, 0x02, 0x1e, 0x42, 0x75, 0x66, 0x2e, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x43, 0x61, 0x73, 0x65, 0x73, 0xca, 0x02, 0x1e, 0x42, 0x75, 0x66, + 0x5c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5c, 0x43, 0x6f, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5c, 0x43, 0x61, 0x73, 0x65, 0x73, 0xe2, 0x02, 0x2a, 0x42, 0x75, + 0x66, 0x5c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5c, 0x43, 0x6f, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5c, 0x43, 0x61, 0x73, 0x65, 0x73, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x21, 0x42, 0x75, 0x66, 0x3a, 0x3a, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x3a, 0x3a, 0x43, 0x61, 0x73, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1494,7 +1554,7 @@ func file_buf_validate_conformance_cases_repeated_proto_rawDescGZIP() []byte { } var file_buf_validate_conformance_cases_repeated_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_buf_validate_conformance_cases_repeated_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_buf_validate_conformance_cases_repeated_proto_msgTypes = make([]protoimpl.MessageInfo, 25) var file_buf_validate_conformance_cases_repeated_proto_goTypes = []interface{}{ (AnEnum)(0), // 0: buf.validate.conformance.cases.AnEnum (RepeatedEmbeddedEnumIn_AnotherInEnum)(0), // 1: buf.validate.conformance.cases.RepeatedEmbeddedEnumIn.AnotherInEnum @@ -1508,37 +1568,38 @@ var file_buf_validate_conformance_cases_repeated_proto_goTypes = []interface{}{ (*RepeatedMinMax)(nil), // 9: buf.validate.conformance.cases.RepeatedMinMax (*RepeatedExact)(nil), // 10: buf.validate.conformance.cases.RepeatedExact (*RepeatedUnique)(nil), // 11: buf.validate.conformance.cases.RepeatedUnique - (*RepeatedItemRule)(nil), // 12: buf.validate.conformance.cases.RepeatedItemRule - (*RepeatedItemPattern)(nil), // 13: buf.validate.conformance.cases.RepeatedItemPattern - (*RepeatedEmbedSkip)(nil), // 14: buf.validate.conformance.cases.RepeatedEmbedSkip - (*RepeatedItemIn)(nil), // 15: buf.validate.conformance.cases.RepeatedItemIn - (*RepeatedItemNotIn)(nil), // 16: buf.validate.conformance.cases.RepeatedItemNotIn - (*RepeatedEnumIn)(nil), // 17: buf.validate.conformance.cases.RepeatedEnumIn - (*RepeatedEnumNotIn)(nil), // 18: buf.validate.conformance.cases.RepeatedEnumNotIn - (*RepeatedEmbeddedEnumIn)(nil), // 19: buf.validate.conformance.cases.RepeatedEmbeddedEnumIn - (*RepeatedEmbeddedEnumNotIn)(nil), // 20: buf.validate.conformance.cases.RepeatedEmbeddedEnumNotIn - (*RepeatedAnyIn)(nil), // 21: buf.validate.conformance.cases.RepeatedAnyIn - (*RepeatedAnyNotIn)(nil), // 22: buf.validate.conformance.cases.RepeatedAnyNotIn - (*RepeatedMinAndItemLen)(nil), // 23: buf.validate.conformance.cases.RepeatedMinAndItemLen - (*RepeatedMinAndMaxItemLen)(nil), // 24: buf.validate.conformance.cases.RepeatedMinAndMaxItemLen - (*RepeatedDuration)(nil), // 25: buf.validate.conformance.cases.RepeatedDuration - (*RepeatedExactIgnore)(nil), // 26: buf.validate.conformance.cases.RepeatedExactIgnore - (*other_package.Embed)(nil), // 27: buf.validate.conformance.cases.other_package.Embed - (*anypb.Any)(nil), // 28: google.protobuf.Any - (*durationpb.Duration)(nil), // 29: google.protobuf.Duration + (*RepeatedMultipleUnique)(nil), // 12: buf.validate.conformance.cases.RepeatedMultipleUnique + (*RepeatedItemRule)(nil), // 13: buf.validate.conformance.cases.RepeatedItemRule + (*RepeatedItemPattern)(nil), // 14: buf.validate.conformance.cases.RepeatedItemPattern + (*RepeatedEmbedSkip)(nil), // 15: buf.validate.conformance.cases.RepeatedEmbedSkip + (*RepeatedItemIn)(nil), // 16: buf.validate.conformance.cases.RepeatedItemIn + (*RepeatedItemNotIn)(nil), // 17: buf.validate.conformance.cases.RepeatedItemNotIn + (*RepeatedEnumIn)(nil), // 18: buf.validate.conformance.cases.RepeatedEnumIn + (*RepeatedEnumNotIn)(nil), // 19: buf.validate.conformance.cases.RepeatedEnumNotIn + (*RepeatedEmbeddedEnumIn)(nil), // 20: buf.validate.conformance.cases.RepeatedEmbeddedEnumIn + (*RepeatedEmbeddedEnumNotIn)(nil), // 21: buf.validate.conformance.cases.RepeatedEmbeddedEnumNotIn + (*RepeatedAnyIn)(nil), // 22: buf.validate.conformance.cases.RepeatedAnyIn + (*RepeatedAnyNotIn)(nil), // 23: buf.validate.conformance.cases.RepeatedAnyNotIn + (*RepeatedMinAndItemLen)(nil), // 24: buf.validate.conformance.cases.RepeatedMinAndItemLen + (*RepeatedMinAndMaxItemLen)(nil), // 25: buf.validate.conformance.cases.RepeatedMinAndMaxItemLen + (*RepeatedDuration)(nil), // 26: buf.validate.conformance.cases.RepeatedDuration + (*RepeatedExactIgnore)(nil), // 27: buf.validate.conformance.cases.RepeatedExactIgnore + (*other_package.Embed)(nil), // 28: buf.validate.conformance.cases.other_package.Embed + (*anypb.Any)(nil), // 29: google.protobuf.Any + (*durationpb.Duration)(nil), // 30: google.protobuf.Duration } var file_buf_validate_conformance_cases_repeated_proto_depIdxs = []int32{ 3, // 0: buf.validate.conformance.cases.RepeatedEmbedNone.val:type_name -> buf.validate.conformance.cases.Embed - 27, // 1: buf.validate.conformance.cases.RepeatedEmbedCrossPackageNone.val:type_name -> buf.validate.conformance.cases.other_package.Embed + 28, // 1: buf.validate.conformance.cases.RepeatedEmbedCrossPackageNone.val:type_name -> buf.validate.conformance.cases.other_package.Embed 3, // 2: buf.validate.conformance.cases.RepeatedMin.val:type_name -> buf.validate.conformance.cases.Embed 3, // 3: buf.validate.conformance.cases.RepeatedEmbedSkip.val:type_name -> buf.validate.conformance.cases.Embed 0, // 4: buf.validate.conformance.cases.RepeatedEnumIn.val:type_name -> buf.validate.conformance.cases.AnEnum 0, // 5: buf.validate.conformance.cases.RepeatedEnumNotIn.val:type_name -> buf.validate.conformance.cases.AnEnum 1, // 6: buf.validate.conformance.cases.RepeatedEmbeddedEnumIn.val:type_name -> buf.validate.conformance.cases.RepeatedEmbeddedEnumIn.AnotherInEnum 2, // 7: buf.validate.conformance.cases.RepeatedEmbeddedEnumNotIn.val:type_name -> buf.validate.conformance.cases.RepeatedEmbeddedEnumNotIn.AnotherNotInEnum - 28, // 8: buf.validate.conformance.cases.RepeatedAnyIn.val:type_name -> google.protobuf.Any - 28, // 9: buf.validate.conformance.cases.RepeatedAnyNotIn.val:type_name -> google.protobuf.Any - 29, // 10: buf.validate.conformance.cases.RepeatedDuration.val:type_name -> google.protobuf.Duration + 29, // 8: buf.validate.conformance.cases.RepeatedAnyIn.val:type_name -> google.protobuf.Any + 29, // 9: buf.validate.conformance.cases.RepeatedAnyNotIn.val:type_name -> google.protobuf.Any + 30, // 10: buf.validate.conformance.cases.RepeatedDuration.val:type_name -> google.protobuf.Duration 11, // [11:11] is the sub-list for method output_type 11, // [11:11] is the sub-list for method input_type 11, // [11:11] is the sub-list for extension type_name @@ -1661,7 +1722,7 @@ func file_buf_validate_conformance_cases_repeated_proto_init() { } } file_buf_validate_conformance_cases_repeated_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepeatedItemRule); i { + switch v := v.(*RepeatedMultipleUnique); i { case 0: return &v.state case 1: @@ -1673,7 +1734,7 @@ func file_buf_validate_conformance_cases_repeated_proto_init() { } } file_buf_validate_conformance_cases_repeated_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepeatedItemPattern); i { + switch v := v.(*RepeatedItemRule); i { case 0: return &v.state case 1: @@ -1685,7 +1746,7 @@ func file_buf_validate_conformance_cases_repeated_proto_init() { } } file_buf_validate_conformance_cases_repeated_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepeatedEmbedSkip); i { + switch v := v.(*RepeatedItemPattern); i { case 0: return &v.state case 1: @@ -1697,7 +1758,7 @@ func file_buf_validate_conformance_cases_repeated_proto_init() { } } file_buf_validate_conformance_cases_repeated_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepeatedItemIn); i { + switch v := v.(*RepeatedEmbedSkip); i { case 0: return &v.state case 1: @@ -1709,7 +1770,7 @@ func file_buf_validate_conformance_cases_repeated_proto_init() { } } file_buf_validate_conformance_cases_repeated_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepeatedItemNotIn); i { + switch v := v.(*RepeatedItemIn); i { case 0: return &v.state case 1: @@ -1721,7 +1782,7 @@ func file_buf_validate_conformance_cases_repeated_proto_init() { } } file_buf_validate_conformance_cases_repeated_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepeatedEnumIn); i { + switch v := v.(*RepeatedItemNotIn); i { case 0: return &v.state case 1: @@ -1733,7 +1794,7 @@ func file_buf_validate_conformance_cases_repeated_proto_init() { } } file_buf_validate_conformance_cases_repeated_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepeatedEnumNotIn); i { + switch v := v.(*RepeatedEnumIn); i { case 0: return &v.state case 1: @@ -1745,7 +1806,7 @@ func file_buf_validate_conformance_cases_repeated_proto_init() { } } file_buf_validate_conformance_cases_repeated_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepeatedEmbeddedEnumIn); i { + switch v := v.(*RepeatedEnumNotIn); i { case 0: return &v.state case 1: @@ -1757,7 +1818,7 @@ func file_buf_validate_conformance_cases_repeated_proto_init() { } } file_buf_validate_conformance_cases_repeated_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepeatedEmbeddedEnumNotIn); i { + switch v := v.(*RepeatedEmbeddedEnumIn); i { case 0: return &v.state case 1: @@ -1769,7 +1830,7 @@ func file_buf_validate_conformance_cases_repeated_proto_init() { } } file_buf_validate_conformance_cases_repeated_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepeatedAnyIn); i { + switch v := v.(*RepeatedEmbeddedEnumNotIn); i { case 0: return &v.state case 1: @@ -1781,7 +1842,7 @@ func file_buf_validate_conformance_cases_repeated_proto_init() { } } file_buf_validate_conformance_cases_repeated_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepeatedAnyNotIn); i { + switch v := v.(*RepeatedAnyIn); i { case 0: return &v.state case 1: @@ -1793,7 +1854,7 @@ func file_buf_validate_conformance_cases_repeated_proto_init() { } } file_buf_validate_conformance_cases_repeated_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepeatedMinAndItemLen); i { + switch v := v.(*RepeatedAnyNotIn); i { case 0: return &v.state case 1: @@ -1805,7 +1866,7 @@ func file_buf_validate_conformance_cases_repeated_proto_init() { } } file_buf_validate_conformance_cases_repeated_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepeatedMinAndMaxItemLen); i { + switch v := v.(*RepeatedMinAndItemLen); i { case 0: return &v.state case 1: @@ -1817,7 +1878,7 @@ func file_buf_validate_conformance_cases_repeated_proto_init() { } } file_buf_validate_conformance_cases_repeated_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepeatedDuration); i { + switch v := v.(*RepeatedMinAndMaxItemLen); i { case 0: return &v.state case 1: @@ -1829,6 +1890,18 @@ func file_buf_validate_conformance_cases_repeated_proto_init() { } } file_buf_validate_conformance_cases_repeated_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RepeatedDuration); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_buf_validate_conformance_cases_repeated_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RepeatedExactIgnore); i { case 0: return &v.state @@ -1847,7 +1920,7 @@ func file_buf_validate_conformance_cases_repeated_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_buf_validate_conformance_cases_repeated_proto_rawDesc, NumEnums: 3, - NumMessages: 24, + NumMessages: 25, NumExtensions: 0, NumServices: 0, }, diff --git a/internal/gen/tests/example/v1/validations.pb.go b/internal/gen/tests/example/v1/validations.pb.go index fefdb2e..e15c2aa 100644 --- a/internal/gen/tests/example/v1/validations.pb.go +++ b/internal/gen/tests/example/v1/validations.pb.go @@ -525,62 +525,62 @@ var file_tests_example_v1_validations_proto_rawDesc = []byte{ 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x20, 0x60, 0x66, 0x6f, 0x6f, 0x60, 0x27, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x1a, 0x15, 0x0a, 0x06, 0x74, 0x65, 0x78, 0x74, 0x20, 0x79, 0x1a, 0x0b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x79, 0x20, 0x3e, 0x3d, 0x20, 0x30, 0x42, 0x0a, 0x0a, 0x01, 0x6f, 0x12, - 0x05, 0xba, 0x48, 0x02, 0x08, 0x01, 0x22, 0x9e, 0x01, 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x48, 0x61, + 0x05, 0xba, 0x48, 0x02, 0x08, 0x01, 0x22, 0xa0, 0x01, 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x48, 0x61, 0x73, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x3f, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x31, 0xba, 0x48, 0x2e, 0x92, 0x01, 0x2b, 0x08, 0x01, 0x10, 0x03, 0x18, 0x01, 0x22, 0x23, 0xba, 0x01, 0x19, 0x12, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x1a, 0x04, 0x74, 0x72, 0x75, 0x65, - 0x0a, 0x05, 0x25, 0x00, 0x00, 0x00, 0x00, 0x52, 0x01, 0x78, 0x12, 0x14, 0x0a, 0x01, 0x79, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x06, 0xba, 0x48, 0x03, 0x92, 0x01, 0x00, 0x52, 0x01, 0x79, - 0x12, 0x35, 0x0a, 0x01, 0x7a, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x65, - 0x73, 0x74, 0x73, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x48, - 0x61, 0x73, 0x4d, 0x73, 0x67, 0x45, 0x78, 0x70, 0x72, 0x73, 0x42, 0x08, 0xba, 0x48, 0x05, 0x92, - 0x01, 0x02, 0x10, 0x02, 0x52, 0x01, 0x7a, 0x22, 0xf1, 0x03, 0x0a, 0x09, 0x4d, 0x73, 0x67, 0x48, - 0x61, 0x73, 0x4d, 0x61, 0x70, 0x12, 0x5b, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x6d, 0x61, - 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x73, 0x2e, - 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x48, 0x61, - 0x73, 0x4d, 0x61, 0x70, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x42, 0x14, 0xba, 0x48, 0x11, 0x9a, 0x01, 0x0e, 0x08, 0x03, 0x22, 0x04, 0x1a, 0x02, - 0x20, 0x00, 0x2a, 0x04, 0x1a, 0x02, 0x10, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x6d, - 0x61, 0x70, 0x12, 0x53, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x61, 0x70, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x73, 0x2e, 0x65, - 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x48, 0x61, 0x73, - 0x4d, 0x61, 0x70, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x42, 0x08, 0xba, 0x48, 0x05, 0x9a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x74, - 0x65, 0x73, 0x74, 0x73, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x73, 0x67, 0x48, 0x61, 0x73, 0x4d, 0x61, 0x70, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x08, 0xba, 0x48, 0x05, 0x9a, 0x01, - 0x02, 0x08, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x70, 0x1a, - 0x3b, 0x0a, 0x0d, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5f, 0x0a, 0x0f, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x36, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x0a, 0x05, 0x25, 0x00, 0x00, 0x00, 0x00, 0x52, 0x01, 0x78, 0x12, 0x16, 0x0a, 0x01, 0x79, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x92, 0x01, 0x02, 0x18, 0x01, 0x52, + 0x01, 0x79, 0x12, 0x35, 0x0a, 0x01, 0x7a, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x73, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x48, 0x61, 0x73, 0x4d, 0x73, 0x67, 0x45, 0x78, 0x70, 0x72, 0x73, 0x42, 0x08, 0xba, 0x48, + 0x05, 0x92, 0x01, 0x02, 0x10, 0x02, 0x52, 0x01, 0x7a, 0x22, 0xf1, 0x03, 0x0a, 0x09, 0x4d, 0x73, + 0x67, 0x48, 0x61, 0x73, 0x4d, 0x61, 0x70, 0x12, 0x5b, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x74, 0x65, 0x73, 0x74, + 0x73, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, + 0x48, 0x61, 0x73, 0x4d, 0x61, 0x70, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x6d, 0x61, 0x70, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x42, 0x14, 0xba, 0x48, 0x11, 0x9a, 0x01, 0x0e, 0x08, 0x03, 0x22, 0x04, + 0x1a, 0x02, 0x20, 0x00, 0x2a, 0x04, 0x1a, 0x02, 0x10, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x6d, 0x61, 0x70, 0x12, 0x53, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, + 0x61, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x73, + 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x48, + 0x61, 0x73, 0x4d, 0x61, 0x70, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x42, 0x08, 0xba, 0x48, 0x05, 0x9a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x09, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x73, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x6f, 0x6f, 0x70, 0x52, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x41, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0xd8, 0x01, 0x0a, 0x14, - 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x73, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, - 0x65, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x75, 0x66, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x74, 0x65, 0x73, 0x74, - 0x73, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x65, 0x78, 0x61, - 0x6d, 0x70, 0x6c, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x54, 0x45, 0x58, 0xaa, 0x02, 0x10, 0x54, - 0x65, 0x73, 0x74, 0x73, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x56, 0x31, 0xca, - 0x02, 0x10, 0x54, 0x65, 0x73, 0x74, 0x73, 0x5c, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5c, - 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x54, 0x65, 0x73, 0x74, 0x73, 0x5c, 0x45, 0x78, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x12, 0x54, 0x65, 0x73, 0x74, 0x73, 0x3a, 0x3a, 0x45, 0x78, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x48, 0x61, 0x73, 0x4d, 0x61, 0x70, 0x2e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x08, 0xba, 0x48, 0x05, + 0x9a, 0x01, 0x02, 0x08, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x61, + 0x70, 0x1a, 0x3b, 0x0a, 0x0d, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, + 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5f, 0x0a, 0x0f, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x36, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x73, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x6f, 0x70, 0x52, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, + 0x65, 0x41, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0xd8, 0x01, + 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x73, 0x2e, 0x65, 0x78, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4c, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x75, 0x66, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x67, 0x6f, + 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x74, 0x65, + 0x73, 0x74, 0x73, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x65, + 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x54, 0x45, 0x58, 0xaa, 0x02, + 0x10, 0x54, 0x65, 0x73, 0x74, 0x73, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x56, + 0x31, 0xca, 0x02, 0x10, 0x54, 0x65, 0x73, 0x74, 0x73, 0x5c, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x54, 0x65, 0x73, 0x74, 0x73, 0x5c, 0x45, 0x78, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, 0x54, 0x65, 0x73, 0x74, 0x73, 0x3a, 0x3a, 0x45, 0x78, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/buf.lock b/proto/buf.lock index 7b8d086..88097ab 100644 --- a/proto/buf.lock +++ b/proto/buf.lock @@ -4,13 +4,13 @@ deps: - remote: buf.build owner: bufbuild repository: protovalidate - commit: ff921ee117154e14b8de3b1335a0f257 - digest: shake256:a0069b0e821f75d5f1e2074a23856c1e63d5bfabb63286d37aaf64cc2f7854c41a8f0ed6c3cf6de1451e612ec1d1bde589b466c8d892f116905bfbb4e223e6c5 + commit: 63dfe56cc2c44cffa4815366ba7a99c0 + digest: shake256:5a8a9856b92bf37171d45ccbe59fc48ea755cd682317b088cdf93e8e797ecf54039e012ece9a17084bb676e70c2e090296b2790782ebdbbedc7514e9b543e6bf - remote: buf.build owner: bufbuild repository: protovalidate-testing - commit: 9ba6914764d140a2b9666e8b203e309f - digest: shake256:c23ce1466f562c828e181abc00ca47d7f1056bc05fe0048bc365dc4c9f9869d05ccb7688dac777957354083f5258219c242ea81716473c287b86b672580c138b + commit: 1e7219041805401e8ae8d804205a63ba + digest: shake256:1256ad54637d755f9ab681017a279137e1ea314cafcfaac92a6eddd2ac564e082bdb40da243d29e585a3491350f3dd7180a21c9c5ab31a88817aa495e2c828b9 - remote: buf.build owner: envoyproxy repository: protoc-gen-validate diff --git a/proto/tests/example/v1/validations.proto b/proto/tests/example/v1/validations.proto index 86b01c0..e88e30b 100644 --- a/proto/tests/example/v1/validations.proto +++ b/proto/tests/example/v1/validations.proto @@ -105,9 +105,7 @@ message MsgHasRepeated { } unique: true, }]; - repeated string y = 2 [(buf.validate.field).repeated = { - // unique: true, - }]; + repeated string y = 2 [(buf.validate.field).repeated.unique = true]; repeated HasMsgExprs z = 3 [(buf.validate.field).repeated = {max_items: 2}]; }