package internal
func ( byte) bool {
return >= 'A' && <= 'Z'
}
func ( byte) bool {
return >= 'a' && <= 'z'
}
func ( byte) byte {
return - 32
}
func ( byte) byte {
return + 32
}
func ( string) string {
:= make([]byte, 0, len()+5)
for := 0; < len(); ++ {
:= []
if IsUpper() {
if > 0 && +1 < len() && (IsLower([-1]) || IsLower([+1])) {
= append(, '_', ToLower())
} else {
= append(, ToLower())
}
} else {
= append(, )
}
}
return string()
}
func ( string) string {
:= make([]byte, 0, len())
:= true
for := 0; < len(); ++ {
:= []
if == '_' {
= true
continue
}
if {
if IsLower() {
= ToUpper()
}
= false
}
= append(, )
}
return string()
}
func ( string) string {
if len() == 0 {
return
}
if := [0]; IsLower() {
:= []byte()
[0] = ToUpper()
return string()
}
return
}
func ( string) string {
if isUpperString() {
return
}
:= make([]byte, len())
for := range {
:= []
if IsLower() {
= ToUpper()
}
[] =
}
return string()
}
func ( string) bool {
for := 0; < len(); ++ {
:= []
if IsLower() {
return false
}
}
return true
}