add basic number validation

This commit is contained in:
Aneurin Barker Snook
2023-11-19 19:33:34 +00:00
parent d59fb7b944
commit 196e1faeeb
+92
View File
@@ -0,0 +1,92 @@
package validate
import "errors"
var (
ErrTooHigh = errors.New("too high")
ErrTooLow = errors.New("too low")
)
func Max(n int, exclusive bool) func(int) error {
return func(value int) error {
if exclusive {
if value >= n {
return ErrTooHigh
}
}
if value > n {
return ErrTooHigh
}
return nil
}
}
func MaxFloat32(n float32, exclusive bool) func(float32) error {
return func(value float32) error {
if exclusive {
if value >= n {
return ErrTooHigh
}
}
if value > n {
return ErrTooHigh
}
return nil
}
}
func MaxFloat64(n float64, exclusive bool) func(float64) error {
return func(value float64) error {
if exclusive {
if value >= n {
return ErrTooHigh
}
}
if value > n {
return ErrTooHigh
}
return nil
}
}
func Min(n int, exclusive bool) func(int) error {
return func(value int) error {
if exclusive {
if value <= n {
return ErrTooHigh
}
}
if value < n {
return ErrTooHigh
}
return nil
}
}
func MinFloat32(n float32, exclusive bool) func(float32) error {
return func(value float32) error {
if exclusive {
if value <= n {
return ErrTooHigh
}
}
if value < n {
return ErrTooHigh
}
return nil
}
}
func MinFloat64(n float64, exclusive bool) func(float64) error {
return func(value float64) error {
if exclusive {
if value <= n {
return ErrTooHigh
}
}
if value < n {
return ErrTooHigh
}
return nil
}
}