mirror of
https://github.com/mickael-kerjean/filestash.git
synced 2025-10-30 17:46:41 +08:00
66 lines
1.0 KiB
Go
66 lines
1.0 KiB
Go
package common
|
|
|
|
import (
|
|
"math/rand"
|
|
)
|
|
|
|
var Letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
|
|
|
|
func RandomString(n int) string {
|
|
b := make([]rune, n)
|
|
for i := range b {
|
|
b[i] = Letters[rand.Intn(len(Letters))]
|
|
}
|
|
return string(b)
|
|
}
|
|
|
|
func NewBool(t bool) *bool {
|
|
return &t
|
|
}
|
|
|
|
func NewString(t string) *string {
|
|
if t == "" {
|
|
return nil
|
|
}
|
|
return &t
|
|
}
|
|
|
|
func NewInt(t int) *int {
|
|
return &t
|
|
}
|
|
|
|
func NewBoolFromInterface(val interface{}) bool {
|
|
switch val.(type) {
|
|
case bool: return val.(bool)
|
|
default: return false
|
|
}
|
|
}
|
|
func NewIntpFromInterface(val interface{}) *int {
|
|
switch val.(type) {
|
|
case int:
|
|
v := val.(int)
|
|
return &v
|
|
case float64:
|
|
v := int(val.(float64))
|
|
return &v
|
|
default: return nil
|
|
}
|
|
}
|
|
func NewStringpFromInterface(val interface{}) *string {
|
|
switch val.(type) {
|
|
case string:
|
|
v := val.(string)
|
|
return &v
|
|
default: return nil
|
|
}
|
|
}
|
|
|
|
func NewStringFromInterface(val interface{}) string {
|
|
switch val.(type) {
|
|
case string:
|
|
v := val.(string)
|
|
return v
|
|
default: return ""
|
|
}
|
|
}
|