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  // ////////////////////////////////////////////////////////////////////////////////// //