1syntax = "proto3"; 2 3package tests.harness.cases; 4option go_package = "cases"; 5 6import "validate/validate.proto"; 7 8message BytesNone { bytes val = 1; } 9message BytesConst { bytes val = 1 [(validate.rules).bytes.const = "foo"]; } 10message BytesIn { bytes val = 1 [(validate.rules).bytes = {in: ["bar", "baz"]}]; } 11message BytesNotIn { bytes val = 1 [(validate.rules).bytes = {not_in: ["fizz", "buzz"]}]; } 12message BytesLen { bytes val = 1 [(validate.rules).bytes.len = 3]; } 13message BytesMinLen { bytes val = 1 [(validate.rules).bytes.min_len = 3]; } 14message BytesMaxLen { bytes val = 1 [(validate.rules).bytes.max_len = 5]; } 15message BytesMinMaxLen { bytes val = 1 [(validate.rules).bytes = {min_len: 3, max_len: 5}]; } 16message BytesEqualMinMaxLen { bytes val = 1 [(validate.rules).bytes = {min_len: 5, max_len: 5}]; } 17message BytesPattern { bytes val = 1 [(validate.rules).bytes.pattern = "^[\x00-\x7F]+$"]; } 18message BytesPrefix { bytes val = 1 [(validate.rules).bytes.prefix = "\x99"]; } 19message BytesContains { bytes val = 1 [(validate.rules).bytes.contains = "bar"]; } 20message BytesSuffix { bytes val = 1 [(validate.rules).bytes.suffix = "buz\x7a"]; } 21message BytesIP { bytes val = 1 [(validate.rules).bytes.ip = true]; } 22message BytesIPv4 { bytes val = 1 [(validate.rules).bytes.ipv4 = true]; } 23message BytesIPv6 { bytes val = 1 [(validate.rules).bytes.ipv6 = true]; } 24