mirror of
https://github.com/MichaelMure/git-bug.git
synced 2024-12-15 18:23:08 +03:00
42 lines
788 B
Go
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}
|
|
}
|