in.go 605 B

1234567891011121314151617181920212223242526272829
  1. package validate
  2. var (
  3. ErrValueNotAllowed = NewError("not allowed")
  4. )
  5. // In validates whether a value is found in a slice of allowed values.
  6. func In[T comparable](allow ...T) func(T) error {
  7. return func(value T) error {
  8. for _, cmp := range allow {
  9. if cmp == value {
  10. return nil
  11. }
  12. }
  13. return ErrValueNotAllowed
  14. }
  15. }
  16. // NotIn validates whether a value is not found in a slice of disallowed values.
  17. func NotIn[T comparable](allow ...T) func(T) error {
  18. return func(value T) error {
  19. for _, cmp := range allow {
  20. if cmp == value {
  21. return ErrValueNotAllowed
  22. }
  23. }
  24. return nil
  25. }
  26. }