in confgenerator/filter/internal/ast/ast.go [262:302]
func escapeFilterString(in string) string {
var needQuotes bool
var b strings.Builder
for i, c := range in {
if i == 0 {
if strings.ContainsRune(filterStartChar, c) {
b.WriteRune(c)
continue
}
needQuotes = true
}
if strings.ContainsRune(filterMidChar, c) {
b.WriteRune(c)
continue
}
needQuotes = true
if strings.ContainsRune(filterStringChar, c) {
b.WriteRune(c)
} else if c == '\a' {
b.WriteString(`\a`)
} else if c == '\b' {
b.WriteString(`\b`)
} else if c == '\f' {
b.WriteString(`\f`)
} else if c == '\n' {
b.WriteString(`\n`)
} else if c == '\r' {
b.WriteString(`\r`)
} else if c == '\t' {
b.WriteString(`\t`)
} else if c == '\v' {
b.WriteString(`\v`)
} else {
fmt.Fprintf(&b, `\u%04X`, c)
}
}
if needQuotes {
return fmt.Sprintf(`"%s"`, b.String())
}
return b.String()
}