diff options
Diffstat (limited to 'vendor/github.com/labstack/gommon/random')
-rw-r--r-- | vendor/github.com/labstack/gommon/random/LICENSE | 22 | ||||
-rw-r--r-- | vendor/github.com/labstack/gommon/random/random.go | 52 |
2 files changed, 74 insertions, 0 deletions
diff --git a/vendor/github.com/labstack/gommon/random/LICENSE b/vendor/github.com/labstack/gommon/random/LICENSE new file mode 100644 index 00000000..d2ae3edf --- /dev/null +++ b/vendor/github.com/labstack/gommon/random/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 labstack + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/vendor/github.com/labstack/gommon/random/random.go b/vendor/github.com/labstack/gommon/random/random.go new file mode 100644 index 00000000..b76bd9b3 --- /dev/null +++ b/vendor/github.com/labstack/gommon/random/random.go @@ -0,0 +1,52 @@ +package random + +import ( + "math/rand" + "time" +) + +type ( + Random struct { + charset Charset + } + + Charset string +) + +const ( + Alphanumeric Charset = Alphabetic + Numeric + Alphabetic Charset = "abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + Numeric Charset = "0123456789" + Hex Charset = Numeric + "abcdef" +) + +var ( + global = New() +) + +func New() *Random { + rand.Seed(time.Now().UnixNano()) + return &Random{ + charset: Alphanumeric, + } +} + +func (r *Random) SetCharset(c Charset) { + r.charset = c +} + +func (r *Random) String(length uint8) string { + b := make([]byte, length) + for i := range b { + b[i] = r.charset[rand.Int63()%int64(len(r.charset))] + } + return string(b) +} + +func SetCharset(c Charset) { + global.SetCharset(c) +} + +func String(length uint8) string { + return global.String(length) +} |