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  }