|
@@ -0,0 +1,31 @@
|
|
|
+package validate
|
|
|
+
|
|
|
+import (
|
|
|
+ "errors"
|
|
|
+)
|
|
|
+
|
|
|
+
|
|
|
+var (
|
|
|
+ ErrTooFewItems = errors.New("too few items")
|
|
|
+ ErrTooManyItems = errors.New("too many items")
|
|
|
+)
|
|
|
+
|
|
|
+
|
|
|
+func MaxSize[T any](l int) func([]T) error {
|
|
|
+ return func(value []T) error {
|
|
|
+ if len(value) > l {
|
|
|
+ return ErrTooFewItems
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+func MinSize[T any](l int) func([]T) error {
|
|
|
+ return func(value []T) error {
|
|
|
+ if len(value) < l {
|
|
|
+ return ErrTooManyItems
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+}
|