commit 5ed515b061b4157d8c39e6eb157985cd08bea75c
parent 017ee1bca5843256b30bfab966959bf9b67b9da0
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Thu, 10 Nov 2022 16:24:10 -0800
generics utils functions
Diffstat:
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go
@@ -464,7 +464,7 @@ func MustGetDefaultProjectPath() string {
}
// MinInt returns the minimum int64 value
-func MinInt(vals ...int64) int64 {
+func MinInt[T Ints](vals ...T) T {
min := vals[0]
for _, num := range vals {
if num < min {
@@ -475,7 +475,7 @@ func MinInt(vals ...int64) int64 {
}
// MaxInt returns the minimum int64 value
-func MaxInt(vals ...int64) int64 {
+func MaxInt[T Ints](vals ...T) T {
max := vals[0]
for _, num := range vals {
if num > max {
@@ -485,8 +485,12 @@ func MaxInt(vals ...int64) int64 {
return max
}
+type Ints interface {
+ int | int64
+}
+
// Clamp ensure the value is within a range
-func Clamp(val, min, max int64) int64 {
+func Clamp[T Ints](val, min, max T) T {
val = MinInt(val, max)
val = MaxInt(val, min)
return val
diff --git a/pkg/web/handlers/api/v1/slashInterceptor.go b/pkg/web/handlers/api/v1/slashInterceptor.go
@@ -394,6 +394,7 @@ func handleTokenCmd(c *Command) (handled bool) {
c.err = errors.New("value must be [1;32]")
return true
}
+ n = utils.Clamp(n, 1, 32)
c.zeroMsg(utils.GenerateTokenN(n))
c.err = ErrRedirect
return true