ltgt.go 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package goshared
  2. const ltgtTpl = `{{ $f := .Field }}{{ $r := .Rules }}
  3. {{ if $r.Lt }}
  4. {{ if $r.Gt }}
  5. {{ if gt $r.GetLt $r.GetGt }}
  6. if val := {{ accessor . }}; val <= {{ $r.Gt }} || val >= {{ $r.Lt }} {
  7. err := {{ err . "value must be inside range (" $r.GetGt ", " $r.GetLt ")" }}
  8. if !all { return err }
  9. errors = append(errors, err)
  10. }
  11. {{ else }}
  12. if val := {{ accessor . }}; val >= {{ $r.Lt }} && val <= {{ $r.Gt }} {
  13. err := {{ err . "value must be outside range [" $r.GetLt ", " $r.GetGt "]" }}
  14. if !all { return err }
  15. errors = append(errors, err)
  16. }
  17. {{ end }}
  18. {{ else if $r.Gte }}
  19. {{ if gt $r.GetLt $r.GetGte }}
  20. if val := {{ accessor . }}; val < {{ $r.Gte }} || val >= {{ $r.Lt }} {
  21. err := {{ err . "value must be inside range [" $r.GetGte ", " $r.GetLt ")" }}
  22. if !all { return err }
  23. errors = append(errors, err)
  24. }
  25. {{ else }}
  26. if val := {{ accessor . }}; val >= {{ $r.Lt }} && val < {{ $r.Gte }} {
  27. err := {{ err . "value must be outside range [" $r.GetLt ", " $r.GetGte ")" }}
  28. if !all { return err }
  29. errors = append(errors, err)
  30. }
  31. {{ end }}
  32. {{ else }}
  33. if {{ accessor . }} >= {{ $r.Lt }} {
  34. err := {{ err . "value must be less than " $r.GetLt }}
  35. if !all { return err }
  36. errors = append(errors, err)
  37. }
  38. {{ end }}
  39. {{ else if $r.Lte }}
  40. {{ if $r.Gt }}
  41. {{ if gt $r.GetLte $r.GetGt }}
  42. if val := {{ accessor . }}; val <= {{ $r.Gt }} || val > {{ $r.Lte }} {
  43. err := {{ err . "value must be inside range (" $r.GetGt ", " $r.GetLte "]" }}
  44. if !all { return err }
  45. errors = append(errors, err)
  46. }
  47. {{ else }}
  48. if val := {{ accessor . }}; val > {{ $r.Lte }} && val <= {{ $r.Gt }} {
  49. err := {{ err . "value must be outside range (" $r.GetLte ", " $r.GetGt "]" }}
  50. if !all { return err }
  51. errors = append(errors, err)
  52. }
  53. {{ end }}
  54. {{ else if $r.Gte }}
  55. {{ if gt $r.GetLte $r.GetGte }}
  56. if val := {{ accessor . }}; val < {{ $r.Gte }} || val > {{ $r.Lte }} {
  57. err := {{ err . "value must be inside range [" $r.GetGte ", " $r.GetLte "]" }}
  58. if !all { return err }
  59. errors = append(errors, err)
  60. }
  61. {{ else }}
  62. if val := {{ accessor . }}; val > {{ $r.Lte }} && val < {{ $r.Gte }} {
  63. err := {{ err . "value must be outside range (" $r.GetLte ", " $r.GetGte ")" }}
  64. if !all { return err }
  65. errors = append(errors, err)
  66. }
  67. {{ end }}
  68. {{ else }}
  69. if {{ accessor . }} > {{ $r.Lte }} {
  70. err := {{ err . "value must be less than or equal to " $r.GetLte }}
  71. if !all { return err }
  72. errors = append(errors, err)
  73. }
  74. {{ end }}
  75. {{ else if $r.Gt }}
  76. if {{ accessor . }} <= {{ $r.Gt }} {
  77. err := {{ err . "value must be greater than " $r.GetGt }}
  78. if !all { return err }
  79. errors = append(errors, err)
  80. }
  81. {{ else if $r.Gte }}
  82. if {{ accessor . }} < {{ $r.Gte }} {
  83. err := {{ err . "value must be greater than or equal to " $r.GetGte }}
  84. if !all { return err }
  85. errors = append(errors, err)
  86. }
  87. {{ end }}
  88. `