26 lines
836 B
Go
26 lines
836 B
Go
// Copyright 2016 The Chihaya Authors. All rights reserved.
|
|
// Use of this source code is governed by the BSD 2-Clause license,
|
|
// which can be found in the LICENSE file.
|
|
|
|
package random
|
|
|
|
import "math/rand"
|
|
|
|
// AlphaNumeric is an alphabet with all lower- and uppercase letters and
|
|
// numbers.
|
|
const AlphaNumeric = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
|
|
|
// AlphaNumericString is a shorthand for String(r, l, AlphaNumeric).
|
|
func AlphaNumericString(r rand.Source, l int) string {
|
|
return String(r, l, AlphaNumeric)
|
|
}
|
|
|
|
// String generates a random string of length l, containing only runes from
|
|
// the alphabet using the random source r.
|
|
func String(r rand.Source, l int, alphabet string) string {
|
|
b := make([]byte, l)
|
|
for i := range b {
|
|
b[i] = alphabet[r.Int63()%int64(len(alphabet))]
|
|
}
|
|
return string(b)
|
|
}
|