git-bug/vendor/github.com/corpix/uarand/uarand.go
2018-08-16 18:22:00 +02:00

42 lines
788 B
Go

package uarand
import (
"math/rand"
"time"
)
var (
// Default is the UARand with default settings.
Default = New(
rand.New(
rand.NewSource(time.Now().UnixNano()),
),
)
)
// Randomizer represents some entity which could provide us an entropy.
type Randomizer interface {
Seed(n int64)
Intn(n int) int
}
// UARand describes the user agent randomizer settings.
type UARand struct {
Randomizer
}
// GetRandom returns a random user agent from UserAgents slice.
func (u *UARand) GetRandom() string {
return UserAgents[u.Intn(len(UserAgents))]
}
// GetRandom returns a random user agent from UserAgents slice.
// This version is driven by Default configuration.
func GetRandom() string {
return Default.GetRandom()
}
func New(r Randomizer) *UARand {
return &UARand{r}
}