package container

import (
	"crypto/rand"
	"math/big"
)

func RandomString(n int) string {
	const letters = "0123456789abcdefghijklmnopqrstuvwxyz"
	ret := make([]byte, n)
	for i := 0; i < n; i++ {
		num, err := rand.Int(rand.Reader, big.NewInt(int64(len(letters))))
		if err != nil {
			panic(err)
		}
		ret[i] = letters[num.Int64()]
	}

	return string(ret)
}

func ToString[T ~string](s T) string {
	return string(s)
}

func FromString[T ~string](s string) T {
	return T(s)
}
