package textutil

import "unicode"

func CamelToSnakeCase(name string) string {
	var out []rune = make([]rune, 0, len(name)*2)
	for i, r := range name {
		if i > 0 && unicode.IsUpper(r) {
			out = append(out, '_')
		}
		out = append(out, unicode.ToLower(r))
	}
	return string(out)
}