navidrome/utils/number/number.go

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

42 lines
564 B
Go
Raw Normal View History

package number
2023-01-14 03:40:24 +01:00
import (
"crypto/rand"
"math/big"
"golang.org/x/exp/constraints"
)
func Min[T constraints.Ordered](vs ...T) T {
if len(vs) == 0 {
var zero T
return zero
}
min := vs[0]
for _, v := range vs[1:] {
if v < min {
min = v
}
}
return min
}
func Max[T constraints.Ordered](vs ...T) T {
if len(vs) == 0 {
var zero T
return zero
}
max := vs[0]
for _, v := range vs[1:] {
if v > max {
max = v
}
}
return max
}
2023-01-14 03:40:24 +01:00
func RandomInt64(max int64) int64 {
rnd, _ := rand.Int(rand.Reader, big.NewInt(max))
return rnd.Int64()
}