diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2023-01-26 22:31:32 -0700 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2023-01-29 21:01:42 -0700 |
commit | ff6dc0bc519886905e758a84e572f5e34d6c03d1 (patch) | |
tree | 8906c4b8bb0c7dc468419efc17b872db62a4e068 /ioutil.go | |
parent | d1b5bc1f05624614f43ef85597f4aa9d7a166d23 (diff) |
Move things between files
Diffstat (limited to 'ioutil.go')
-rw-r--r-- | ioutil.go | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/ioutil.go b/ioutil.go new file mode 100644 index 0000000..a53eac3 --- /dev/null +++ b/ioutil.go @@ -0,0 +1,31 @@ +// Copyright (C) 2022-2023 Luke Shumaker <lukeshu@lukeshu.com> +// +// 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]) +} |