From f823342d5b9c2ca376d038471889176ab74acf1b Mon Sep 17 00:00:00 2001
From: Luke Shumaker <lukeshu@lukeshu.com>
Date: Wed, 15 Feb 2023 15:10:00 -0700
Subject: reencode: Don't bother tracking the number of bytes written

---
 internal/jsonstring/encode_string.go | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

(limited to 'internal/jsonstring')

diff --git a/internal/jsonstring/encode_string.go b/internal/jsonstring/encode_string.go
index a7670c6..1b0c68a 100644
--- a/internal/jsonstring/encode_string.go
+++ b/internal/jsonstring/encode_string.go
@@ -25,7 +25,7 @@ const (
 // BackslashEscaper is describe in the main lowmemjson package docs.
 type BackslashEscaper = func(rune, BackslashEscapeMode) BackslashEscapeMode
 
-func writeStringUnicodeEscape(w io.Writer, c rune) (int, error) {
+func writeStringUnicodeEscape(w io.Writer, c rune) error {
 	const alphabet = "0123456789abcdef"
 	buf := [6]byte{
 		'\\',
@@ -35,10 +35,11 @@ func writeStringUnicodeEscape(w io.Writer, c rune) (int, error) {
 		alphabet[(c>>4)&0xf],
 		alphabet[(c>>0)&0xf],
 	}
-	return w.Write(buf[:])
+	_, err := w.Write(buf[:])
+	return err
 }
 
-func writeStringShortEscape(w io.Writer, c rune) (int, error) {
+func writeStringShortEscape(w io.Writer, c rune) error {
 	var b byte
 	switch c {
 	case '"', '\\', '/':
@@ -57,10 +58,11 @@ func writeStringShortEscape(w io.Writer, c rune) (int, error) {
 		panic(fmt.Errorf("should not happen: writeStringShortEscape called with invalid rune: %q", c))
 	}
 	buf := [2]byte{'\\', b}
-	return w.Write(buf[:])
+	_, err := w.Write(buf[:])
+	return err
 }
 
-func WriteStringChar(w fastio.AllWriter, c rune, escape BackslashEscapeMode) (int, error) {
+func WriteStringChar(w fastio.AllWriter, c rune, escape BackslashEscapeMode) error {
 	switch escape {
 	case BackslashEscapeNone:
 		switch {
@@ -74,19 +76,22 @@ func WriteStringChar(w fastio.AllWriter, c rune, escape BackslashEscapeMode) (in
 		case c == '"' || c == '\\': // override, gotta escape these
 			return writeStringShortEscape(w, c)
 		default: // obey
-			return w.WriteRune(c)
+			_, err := w.WriteRune(c)
+			return err
 		}
 	case BackslashEscapeShort:
 		switch c {
 		case '"', '\\', '/', '\b', '\f', '\n', '\r', '\t': // obey
 			return writeStringShortEscape(w, c)
 		default: // override, can't short-escape these
-			return w.WriteRune(c)
+			_, err := w.WriteRune(c)
+			return err
 		}
 	case BackslashEscapeUnicode:
 		switch {
 		case c > 0xFFFF: // override, can't escape these (TODO: unless we use UTF-16 surrogates?)
-			return w.WriteRune(c)
+			_, err := w.WriteRune(c)
+			return err
 		default: // obey
 			return writeStringUnicodeEscape(w, c)
 		}
@@ -100,7 +105,7 @@ func EncodeStringFromString(w fastio.AllWriter, escaper BackslashEscaper, str st
 		return err
 	}
 	for _, c := range str {
-		if _, err := WriteStringChar(w, c, escaper(c, BackslashEscapeNone)); err != nil {
+		if err := WriteStringChar(w, c, escaper(c, BackslashEscapeNone)); err != nil {
 			return err
 		}
 	}
@@ -116,7 +121,7 @@ func EncodeStringFromBytes(w fastio.AllWriter, escaper BackslashEscaper, str []b
 	}
 	for i := 0; i < len(str); {
 		c, size := utf8.DecodeRune(str[i:])
-		if _, err := WriteStringChar(w, c, escaper(c, BackslashEscapeNone)); err != nil {
+		if err := WriteStringChar(w, c, escaper(c, BackslashEscapeNone)); err != nil {
 			return err
 		}
 		i += size
-- 
cgit v1.2.3-2-g168b