package internal

func ( byte) bool {
	return  >= 'A' &&  <= 'Z'
}

func ( byte) bool {
	return  >= 'a' &&  <= 'z'
}

func ( byte) byte {
	return  - 32
}

func ( byte) byte {
	return  + 32
}

// Underscore converts "CamelCasedString" to "camel_cased_string".
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
}