add support for non-scalar inputs

This commit is contained in:
Ben Kraft
2020-04-10 17:02:18 -07:00
parent b600df7877
commit 9510470937
4 changed files with 261 additions and 63 deletions
+28
View File
@@ -0,0 +1,28 @@
package generate
import (
"unicode"
"unicode/utf8"
)
func reverse(slice []string) {
for left, right := 0, len(slice)-1; left < right; left, right = left+1, right-1 {
slice[left], slice[right] = slice[right], slice[left]
}
}
func changeFirst(s string, f func(rune) rune) string {
c, n := utf8.DecodeRuneInString(s)
if c == utf8.RuneError { // empty or invalid
return s
}
return string(f(c)) + s[n:]
}
func lowerFirst(s string) string {
return changeFirst(s, unicode.ToLower)
}
func upperFirst(s string) string {
return changeFirst(s, unicode.ToUpper)
}