add slice size validation
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user