aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/ettle/strcase/unicode.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/ettle/strcase/unicode.go')
-rw-r--r--vendor/github.com/ettle/strcase/unicode.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/vendor/github.com/ettle/strcase/unicode.go b/vendor/github.com/ettle/strcase/unicode.go
new file mode 100644
index 000000000..b75e25a51
--- /dev/null
+++ b/vendor/github.com/ettle/strcase/unicode.go
@@ -0,0 +1,48 @@
+package strcase
+
+import "unicode"
+
+// Unicode functions, optimized for the common case of ascii
+// No performance lost by wrapping since these functions get inlined by the compiler
+
+func isUpper(r rune) bool {
+ return unicode.IsUpper(r)
+}
+
+func isLower(r rune) bool {
+ return unicode.IsLower(r)
+}
+
+func isNumber(r rune) bool {
+ if r >= '0' && r <= '9' {
+ return true
+ }
+ return unicode.IsNumber(r)
+}
+
+func isSpace(r rune) bool {
+ if r == ' ' || r == '\t' || r == '\n' || r == '\r' {
+ return true
+ } else if r < 128 {
+ return false
+ }
+ return unicode.IsSpace(r)
+}
+
+func toUpper(r rune) rune {
+ if r >= 'a' && r <= 'z' {
+ return r - 32
+ } else if r < 128 {
+ return r
+ }
+ return unicode.ToUpper(r)
+}
+
+func toLower(r rune) rune {
+ if r >= 'A' && r <= 'Z' {
+ return r + 32
+ } else if r < 128 {
+ return r
+ }
+ return unicode.ToLower(r)
+}