Browse Source

add basic number validation

Aneurin Barker Snook 1 năm trước cách đây
mục cha
commit
196e1faeeb
1 tập tin đã thay đổi với 92 bổ sung0 xóa
  1. 92 0
      number.go

+ 92 - 0
number.go

@@ -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
+	}
+}