summaryrefslogtreecommitdiff
path: root/teleirc/matterbridge/vendor/github.com/labstack/gommon/random
diff options
context:
space:
mode:
Diffstat (limited to 'teleirc/matterbridge/vendor/github.com/labstack/gommon/random')
-rw-r--r--teleirc/matterbridge/vendor/github.com/labstack/gommon/random/random.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/teleirc/matterbridge/vendor/github.com/labstack/gommon/random/random.go b/teleirc/matterbridge/vendor/github.com/labstack/gommon/random/random.go
new file mode 100644
index 0000000..482d052
--- /dev/null
+++ b/teleirc/matterbridge/vendor/github.com/labstack/gommon/random/random.go
@@ -0,0 +1,48 @@
+package random
+
+import (
+ "math/rand"
+ "strings"
+ "time"
+)
+
+type (
+ Random struct {
+ }
+)
+
+// Charsets
+const (
+ Uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ Lowercase = "abcdefghijklmnopqrstuvwxyz"
+ Alphabetic = Uppercase + Lowercase
+ Numeric = "0123456789"
+ Alphanumeric = Alphabetic + Numeric
+ Symbols = "`" + `~!@#$%^&*()-_+={}[]|\;:"<>,./?`
+ Hex = Numeric + "abcdef"
+)
+
+var (
+ global = New()
+)
+
+func New() *Random {
+ rand.Seed(time.Now().UnixNano())
+ return new(Random)
+}
+
+func (r *Random) String(length uint8, charsets ...string) string {
+ charset := strings.Join(charsets, "")
+ if charset == "" {
+ charset = Alphanumeric
+ }
+ b := make([]byte, length)
+ for i := range b {
+ b[i] = charset[rand.Int63()%int64(len(charset))]
+ }
+ return string(b)
+}
+
+func String(length uint8, charsets ...string) string {
+ return global.String(length, charsets...)
+}