maps.proto 1.4 KB

1234567891011121314151617181920212223242526272829303132
  1. syntax = "proto3";
  2. package tests.harness.cases;
  3. option go_package = "github.com/envoyproxy/protoc-gen-validate/tests/harness/cases/go;cases";
  4. import "validate/validate.proto";
  5. message MapNone { map<uint32,bool> val = 1; }
  6. message MapMin { map<int32,float> val = 1 [(validate.rules).map.min_pairs = 2]; }
  7. message MapMax { map<int64,double> val = 1 [(validate.rules).map.max_pairs = 3]; }
  8. message MapMinMax { map<string,bool> val = 1 [(validate.rules).map = {min_pairs: 2, max_pairs: 4}]; }
  9. message MapExact { map<uint64,string> val = 1 [(validate.rules).map = {min_pairs: 3, max_pairs: 3}]; }
  10. message MapNoSparse {
  11. map<uint32, Msg> val = 1 [(validate.rules).map.no_sparse = true];
  12. message Msg {}
  13. }
  14. message MapKeys { map<sint64, string> val = 1 [(validate.rules).map.keys.sint64.lt = 0]; }
  15. message MapValues { map<string, string> val = 1 [(validate.rules).map.values.string.min_len = 3]; }
  16. message MapKeysPattern { map<string, string> val = 1 [(validate.rules).map.keys.string.pattern = "(?i)^[a-z0-9]+$"]; }
  17. message MapValuesPattern { map<string, string> val = 1 [(validate.rules).map.values.string.pattern = "(?i)^[a-z0-9]+$"]; }
  18. message MapRecursive {
  19. map<uint32, Msg> val = 1;
  20. message Msg {
  21. string val = 1 [(validate.rules).string.min_len = 3];
  22. }
  23. }
  24. message MapExactIgnore { map<uint64,string> val = 1 [(validate.rules).map = {min_pairs: 3, max_pairs: 3, ignore_empty: true}]; }