diff options
Diffstat (limited to 'vendor/github.com/go-redis/redis/v7/internal/util.go')
-rw-r--r-- | vendor/github.com/go-redis/redis/v7/internal/util.go | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/vendor/github.com/go-redis/redis/v7/internal/util.go b/vendor/github.com/go-redis/redis/v7/internal/util.go new file mode 100644 index 0000000000..844f34bad8 --- /dev/null +++ b/vendor/github.com/go-redis/redis/v7/internal/util.go @@ -0,0 +1,56 @@ +package internal + +import ( + "context" + "time" + + "github.com/go-redis/redis/v7/internal/util" +) + +func Sleep(ctx context.Context, dur time.Duration) error { + t := time.NewTimer(dur) + defer t.Stop() + + select { + case <-t.C: + return nil + case <-ctx.Done(): + return ctx.Err() + } +} + +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 util.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 Unwrap(err error) error { + u, ok := err.(interface { + Unwrap() error + }) + if !ok { + return nil + } + return u.Unwrap() +} |