dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit 5ed515b061b4157d8c39e6eb157985cd08bea75c
parent 017ee1bca5843256b30bfab966959bf9b67b9da0
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Thu, 10 Nov 2022 16:24:10 -0800

generics utils functions

Diffstat:
Mpkg/utils/utils.go | 10+++++++---
Mpkg/web/handlers/api/v1/slashInterceptor.go | 1+
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