pkg.re/essentialkaos/ek.10@v12.41.0+incompatible/rand/rand.go (about) 1 // Package rand provides methods for generating random data 2 package rand 3 4 // ////////////////////////////////////////////////////////////////////////////////// // 5 // // 6 // Copyright (c) 2022 ESSENTIAL KAOS // 7 // Apache License, Version 2.0 <https://www.apache.org/licenses/LICENSE-2.0> // 8 // // 9 // ////////////////////////////////////////////////////////////////////////////////// // 10 11 import ( 12 "math/rand" 13 "time" 14 ) 15 16 // ////////////////////////////////////////////////////////////////////////////////// // 17 18 var symbols = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890" 19 20 // ////////////////////////////////////////////////////////////////////////////////// // 21 22 // String returns string with random chars 23 func String(length int) string { 24 if length <= 0 { 25 return "" 26 } 27 28 symbolsLength := len(symbols) 29 result := make([]byte, length) 30 31 rand.Seed(time.Now().UTC().UnixNano()) 32 33 for i := 0; i < length; i++ { 34 result[i] = symbols[rand.Intn(symbolsLength)] 35 } 36 37 return string(result) 38 } 39 40 // Int returns random int 41 func Int(n int) int { 42 rand.Seed(time.Now().UTC().UnixNano()) 43 return rand.Intn(n) 44 } 45 46 // Slice returns slice with random chars 47 func Slice(length int) []string { 48 if length == 0 { 49 return []string{} 50 } 51 52 symbolsLength := len(symbols) 53 result := make([]string, length) 54 55 for i := 0; i < length; i++ { 56 result[i] = string(symbols[rand.Intn(symbolsLength)]) 57 } 58 59 return result 60 } 61 62 // ////////////////////////////////////////////////////////////////////////////////// //