Files
validate/in.go
T

30 lines
592 B
Go
Raw Normal View History

2023-10-07 11:24:34 +01:00
package validate
2023-10-07 13:42:17 +01:00
var (
2023-11-19 20:42:48 +00:00
ErrValueNotAllowed = NewError("not allowed")
2023-10-07 13:42:17 +01:00
)
2026-09-07 13:59:59 +01:00
// In validates that a value equals one of the allowed values.
2023-10-07 13:42:17 +01:00
func In[T comparable](allow ...T) func(T) error {
2023-10-07 11:24:34 +01:00
return func(value T) error {
for _, cmp := range allow {
if cmp == value {
return nil
}
}
2023-10-07 13:42:17 +01:00
return ErrValueNotAllowed
2023-10-07 11:24:34 +01:00
}
}
2026-09-07 13:59:59 +01:00
// NotIn validates that a value equals none of the disallowed values.
func NotIn[T comparable](disallow ...T) func(T) error {
2023-10-07 11:24:34 +01:00
return func(value T) error {
2026-09-07 13:59:59 +01:00
for _, cmp := range disallow {
2023-10-07 11:24:34 +01:00
if cmp == value {
2023-10-07 13:42:17 +01:00
return ErrValueNotAllowed
2023-10-07 11:24:34 +01:00
}
}
return nil
}
}