diff options
Diffstat (limited to 'misc.go')
-rw-r--r-- | misc.go | 25 |
1 files changed, 6 insertions, 19 deletions
@@ -9,22 +9,9 @@ import ( "io" "reflect" "unicode/utf8" -) - -const hex = "0123456789abcdef" -func hex2int[T interface{ byte | rune }](c T) (byte, bool) { - switch { - case '0' <= c && c <= '9': - return byte(c) - '0', true - case 'a' <= c && c <= 'f': - return byte(c) - 'a' + 10, true - case 'A' <= c && c <= 'F': - return byte(c) - 'A' + 10, true - default: - return 0, false - } -} + "git.lukeshu.com/go/lowmemjson/internal" +) var ( numberType = reflect.TypeOf(json.Number("")) @@ -115,10 +102,10 @@ func writeStringUnicodeEscape(w io.Writer, c rune) (int, error) { buf := [6]byte{ '\\', 'u', - hex[(c>>12)&0xf], - hex[(c>>8)&0xf], - hex[(c>>4)&0xf], - hex[(c>>0)&0xf], + internal.Hex[(c>>12)&0xf], + internal.Hex[(c>>8)&0xf], + internal.Hex[(c>>4)&0xf], + internal.Hex[(c>>0)&0xf], } return w.Write(buf[:]) } |