Files
zooid/zooid/util.go
T
2025-09-25 14:32:21 -07:00

62 lines
803 B
Go

package zooid
import (
"math/rand"
"strings"
)
const (
AUTH_JOIN = 28934
AUTH_INVITE = 28935
)
func First[T any](s []T) T {
if len(s) == 0 {
var zero T
return zero
}
return s[0]
}
func Keys[K comparable, V any](m map[K]V) []K {
ks := make([]K, len(m))
i := 0
for k := range m {
ks[i] = k
i++
}
return ks
}
func Filter[T any](ss []T, test func(T) bool) (ret []T) {
for _, s := range ss {
if test(s) {
ret = append(ret, s)
}
}
return
}
const letters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
func RandomString(n int) string {
b := make([]byte, n)
for i := range b {
b[i] = letters[rand.Intn(len(letters))]
}
return string(b)
}
func Split(s string, delim string) []string {
if s == "" {
return []string{}
} else {
return strings.Split(s, delim)
}
}