MCPcopy Create free account
hub / github.com/coder/coder / decodeNulInString

Function decodeNulInString

coderd/x/chatd/chatprompt/chatprompt.go:1663–1688  ·  view source on GitHub ↗

decodeNulInString reverses encodeNulInString: U+E000 U+E000 becomes U+E000, and U+E000 U+E001 becomes NUL.

(s string)

Source from the content-addressed store, hash-verified

1661// decodeNulInString reverses encodeNulInString: U+E000 U+E000
1662// becomes U+E000, and U+E000 U+E001 becomes NUL.
1663func decodeNulInString(s string) string {
1664 if !strings.ContainsRune(s, '\uE000') {
1665 return s
1666 }
1667 var b strings.Builder
1668 b.Grow(len(s))
1669 runes := []rune(s)
1670 for i := 0; i < len(runes); i++ {
1671 if runes[i] == '\uE000' && i+1 < len(runes) {
1672 switch runes[i+1] {
1673 case '\uE000':
1674 _, _ = b.WriteRune('\uE000')
1675 i++
1676 case '\uE001':
1677 _, _ = b.WriteRune(0)
1678 i++
1679 default:
1680 // Unpaired sentinel, preserve as-is.
1681 _, _ = b.WriteRune(runes[i])
1682 }
1683 } else {
1684 _, _ = b.WriteRune(runes[i])
1685 }
1686 }
1687 return b.String()
1688}
1689
1690// encodeNulInValue recursively walks a JSON value (as produced
1691// by json.Unmarshal with UseNumber) and applies

Callers 2

decodeNulInValueFunction · 0.85
decodeNulInPartsFunction · 0.85

Calls 1

StringMethod · 0.45

Tested by

no test coverage detected