github.com/gofiber/fiber/v2@v2.47.0/utils/strings.go (about) 1 // ⚡️ Fiber is an Express inspired web framework written in Go with ☕️ 2 // 🤖 Github Repository: https://github.com/gofiber/fiber 3 // 📌 API Documentation: https://docs.gofiber.io 4 5 package utils 6 7 // ToLower converts ascii string to lower-case 8 func ToLower(b string) string { 9 res := make([]byte, len(b)) 10 copy(res, b) 11 for i := 0; i < len(res); i++ { 12 res[i] = toLowerTable[res[i]] 13 } 14 15 return UnsafeString(res) 16 } 17 18 // ToUpper converts ascii string to upper-case 19 func ToUpper(b string) string { 20 res := make([]byte, len(b)) 21 copy(res, b) 22 for i := 0; i < len(res); i++ { 23 res[i] = toUpperTable[res[i]] 24 } 25 26 return UnsafeString(res) 27 } 28 29 // TrimLeft is the equivalent of strings.TrimLeft 30 func TrimLeft(s string, cutset byte) string { 31 lenStr, start := len(s), 0 32 for start < lenStr && s[start] == cutset { 33 start++ 34 } 35 return s[start:] 36 } 37 38 // Trim is the equivalent of strings.Trim 39 func Trim(s string, cutset byte) string { 40 i, j := 0, len(s)-1 41 for ; i <= j; i++ { 42 if s[i] != cutset { 43 break 44 } 45 } 46 for ; i < j; j-- { 47 if s[j] != cutset { 48 break 49 } 50 } 51 52 return s[i : j+1] 53 } 54 55 // TrimRight is the equivalent of strings.TrimRight 56 func TrimRight(s string, cutset byte) string { 57 lenStr := len(s) 58 for lenStr > 0 && s[lenStr-1] == cutset { 59 lenStr-- 60 } 61 return s[:lenStr] 62 } 63 64 // EqualFold tests ascii strings for equality case-insensitively 65 func EqualFold(b, s string) bool { 66 if len(b) != len(s) { 67 return false 68 } 69 for i := len(b) - 1; i >= 0; i-- { 70 if toUpperTable[b[i]] != toUpperTable[s[i]] { 71 return false 72 } 73 } 74 return true 75 }