// OSGOS helper // ======================================================================================================= // Author: LLC Texnico // All rights reserved // Russia, Chelyabinsk, 2022-2024 package main import ( "bytes" "math/rand" "sync" "time" ) var ( mutexRandom sync.Mutex counterRandom int64 ) func RandomString(l int) string { mutexRandom.Lock() counterRandom++ rand.Seed(time.Now().UTC().UnixNano() + counterRandom) var result bytes.Buffer var temp string for i := 0; i < l; { t := RandInt(0, 3) if t == 1 { temp = string(rune(RandInt(48, 58))) } else if t == 2 { temp = string(rune(RandInt(65, 91))) } else { temp = string(rune(RandInt(97, 123))) } result.WriteString(temp) i++ } mutexRandom.Unlock() return result.String() } func RandomStringOnlyAlphabetic(l int) string { mutexRandom.Lock() counterRandom++ rand.Seed(time.Now().UTC().UnixNano() + counterRandom) var result bytes.Buffer var temp string for i := 0; i < l; { t := RandInt(0, 2) if t == 1 { temp = string(rune(RandInt(97, 123))) } else { temp = string(rune(RandInt(65, 91))) } result.WriteString(temp) i++ } mutexRandom.Unlock() return result.String() } func RandFloat(min float64, max float64) float64 { return min + rand.Float64()*(max-min) } func RandInt(min int, max int) int { return min + rand.Intn(max-min) }