// Copyright (C) 2022-2023 Luke Shumaker // // SPDX-License-Identifier: GPL-2.0-or-later package lowmemjson import ( "io" "unicode/utf8" ) func writeByte(w io.Writer, c byte) error { if br, ok := w.(interface{ WriteByte(byte) error }); ok { return br.WriteByte(c) } var buf [1]byte buf[0] = c if _, err := w.Write(buf[:]); err != nil { return err } return nil } func writeRune(w io.Writer, c rune) (int, error) { if rw, ok := w.(interface{ WriteRune(rune) (int, error) }); ok { return rw.WriteRune(c) } var buf [utf8.UTFMax]byte n := utf8.EncodeRune(buf[:], c) return w.Write(buf[:n]) }