in schema/schema.go [214:245]
func NormalizeAdxIdentifier(s string) string {
// Most common to not need normalization in this path. Only allocate if needed.
bytesToRemove := 0
for i := 0; i < len(s); i++ {
// ADX appears to only accept ASCII letters/numbers
if !(s[i] >= 'a' && s[i] <= 'z' || s[i] >= '0' && s[i] <= '9' || s[i] >= 'A' && s[i] <= 'Z') {
bytesToRemove += 1
}
}
if bytesToRemove == 0 && len(s) <= max_adx_identifier_length {
return s
}
destSize := len(s) - bytesToRemove
var b strings.Builder
if destSize < max_adx_identifier_length {
b.Grow(destSize)
} else {
b.Grow(max_adx_identifier_length)
}
for i := 0; i < len(s); i++ {
if s[i] >= 'a' && s[i] <= 'z' || s[i] >= '0' && s[i] <= '9' || s[i] >= 'A' && s[i] <= 'Z' {
b.WriteByte(s[i])
if b.Len() >= max_adx_identifier_length {
break
}
}
}
return b.String()
}