ltgt.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package cc
  2. const ltgtTpl = `{{ $f := .Field }}{{ $r := .Rules }}{{ $v := (accessor .) }}
  3. {{ if $r.Lt }}
  4. {{ if $r.Gt }}
  5. {{ if gt $r.GetLt $r.GetGt }}
  6. if ({{ $v }} <= {{ $r.Gt }} || {{ $v }} >= {{ $r.Lt }}) {
  7. {{ err . "value must be inside range (" $r.GetGt ", " $r.GetLt ")" }}
  8. }
  9. {{ else }}
  10. if ({{ $v }} >= {{ $r.Lt }} && {{ $v }} <= {{ $r.Gt }}) {
  11. {{ err . "value must be outside range [" $r.GetLt ", " $r.GetGt "]" }}
  12. }
  13. {{ end }}
  14. {{ else if $r.Gte }}
  15. {{ if gt $r.GetLt $r.GetGte }}
  16. if ({{ $v }} < {{ $r.Gte }} || {{ $v }} >= {{ $r.Lt }}) {
  17. {{ err . "value must be inside range [" $r.GetGte ", " $r.GetLt ")" }}
  18. }
  19. {{ else }}
  20. if ({{ $v }} >= {{ $r.Lt }} && {{ $v }} < {{ $r.Gte }}) {
  21. {{ err . "value must be outside range [" $r.GetLt ", " $r.GetGte ")" }}
  22. }
  23. {{ end }}
  24. {{ else }}
  25. if ({{ accessor . }} >= {{ $r.Lt }}) {
  26. {{ err . "value must be less than " $r.GetLt }}
  27. }
  28. {{ end }}
  29. {{ else if $r.Lte }}
  30. {{ if $r.Gt }}
  31. {{ if gt $r.GetLte $r.GetGt }}
  32. if ({{ $v }} <= {{ $r.Gt }} || {{ $v }} > {{ $r.Lte }}) {
  33. {{ err . "value must be inside range (" $r.GetGt ", " $r.GetLte "]" }}
  34. }
  35. {{ else }}
  36. if ({{ $v }} > {{ $r.Lte }} && {{ $v }} <= {{ $r.Gt }}) {
  37. {{ err . "value must be outside range (" $r.GetLte ", " $r.GetGt "]" }}
  38. }
  39. {{ end }}
  40. {{ else if $r.Gte }}
  41. {{ if gt $r.GetLte $r.GetGte }}
  42. if ({{ $v }} < {{ $r.Gte }} || {{ $v }} > {{ $r.Lte }}) {
  43. {{ err . "value must be inside range [" $r.GetGte ", " $r.GetLte "]" }}
  44. }
  45. {{ else }}
  46. if ({{ $v }} > {{ $r.Lte }} && {{ $v }} < {{ $r.Gte }}) {
  47. {{ err . "value must be outside range (" $r.GetLte ", " $r.GetGte ")" }}
  48. }
  49. {{ end }}
  50. {{ else }}
  51. if ({{ accessor . }} > {{ $r.Lte }}) {
  52. {{ err . "value must be less than or equal to " $r.GetLte }}
  53. }
  54. {{ end }}
  55. {{ else if $r.Gt }}
  56. if ({{ accessor . }} <= {{ $r.Gt }}) {
  57. {{ err . "value must be greater than " $r.GetGt }}
  58. }
  59. {{ else if $r.Gte }}
  60. if ({{ accessor . }} < {{ $r.Gte }}) {
  61. {{ err . "value must be greater than or equal to " $r.GetGte }}
  62. }
  63. {{ end }}
  64. `