"megatron/legacy/model/bert_model.py" did not exist on "22e3c7e60726331ee1451fddf831012a1ae65a7b"
field.go 633 Bytes
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//go:build windows || darwin

package format

import (
	"strings"
	"unicode"
)

// KebabCase converts a string from camelCase or PascalCase to kebab-case.
// (e.g. "camelCase" -> "camel-case")
func KebabCase(str string) string {
	var result strings.Builder

	for i, char := range str {
		if i > 0 {
			prevChar := rune(str[i-1])

			// Add hyphen before uppercase letters
			if unicode.IsUpper(char) &&
				(unicode.IsLower(prevChar) || unicode.IsDigit(prevChar) ||
					(i < len(str)-1 && unicode.IsLower(rune(str[i+1])))) {
				result.WriteRune('-')
			}
		}
		result.WriteRune(unicode.ToLower(char))
	}

	return result.String()
}