add slice size validation

This commit is contained in:
Aneurin Barker Snook
2023-10-13 21:16:08 +01:00
parent 9537961e29
commit f929f4ffff
+31
View File
@@ -0,0 +1,31 @@
package validate
import (
"errors"
)
// Validation error.
var (
ErrTooFewItems = errors.New("too few items")
ErrTooManyItems = errors.New("too many items")
)
// MaxSize validates the length of a slice as being less than or equal to a given maximum.
func MaxSize[T any](l int) func([]T) error {
return func(value []T) error {
if len(value) > l {
return ErrTooFewItems
}
return nil
}
}
// MinSize validates the length of a slice as being greater than or equal to a given minimum.
func MinSize[T any](l int) func([]T) error {
return func(value []T) error {
if len(value) < l {
return ErrTooManyItems
}
return nil
}
}