package network

import (
	"math/rand"
	"time"
)

var (
	// globalRand 用于随机生成 19 位数字, 使用 time.Now().UnixNano()
	globalRand *rand.Rand
)

// Rand64 返回 int64
func Rand64() int64 {
	return globalRand.Int63()
}

// RandU64 返回 uint64
func RandU64() uint64 {
	return globalRand.Uint64()
}

// RandN64 使用 n 作为 seed 随机生成数字
func RandN64(n int64) int64 {
	return globalRand.Int63n(n)
}

func init() {
	globalRand = rand.New(RandSource())
}

func RandSource() rand.Source {
	return rand.New(rand.NewSource(time.Now().UnixNano()))
}
