summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/go-redis/redis/internal/util.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/go-redis/redis/internal/util.go')
-rw-r--r--vendor/github.com/go-redis/redis/internal/util.go47
1 files changed, 47 insertions, 0 deletions
diff --git a/vendor/github.com/go-redis/redis/internal/util.go b/vendor/github.com/go-redis/redis/internal/util.go
new file mode 100644
index 000000000..520596fd9
--- /dev/null
+++ b/vendor/github.com/go-redis/redis/internal/util.go
@@ -0,0 +1,47 @@
+package internal
+
+import "reflect"
+
+func ToLower(s string) string {
+ if isLower(s) {
+ return s
+ }
+
+ b := make([]byte, len(s))
+ for i := range b {
+ c := s[i]
+ if c >= 'A' && c <= 'Z' {
+ c += 'a' - 'A'
+ }
+ b[i] = c
+ }
+ return BytesToString(b)
+}
+
+func isLower(s string) bool {
+ for i := 0; i < len(s); i++ {
+ c := s[i]
+ if c >= 'A' && c <= 'Z' {
+ return false
+ }
+ }
+ return true
+}
+
+func SliceNextElem(v reflect.Value) reflect.Value {
+ if v.Len() < v.Cap() {
+ v.Set(v.Slice(0, v.Len()+1))
+ return v.Index(v.Len() - 1)
+ }
+
+ elemType := v.Type().Elem()
+
+ if elemType.Kind() == reflect.Ptr {
+ elem := reflect.New(elemType.Elem())
+ v.Set(reflect.Append(v, elem))
+ return elem.Elem()
+ }
+
+ v.Set(reflect.Append(v, reflect.Zero(elemType)))
+ return v.Index(v.Len() - 1)
+}