diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2023-01-26 21:02:56 -0700 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2023-01-30 22:00:25 -0700 |
commit | 2828fa21c0ffd2a32a108b37c0417b01abc42929 (patch) | |
tree | ae671b894fa952e01a410c94fe27e1d0fec37e80 /internal/base64.go | |
parent | 8aa12d3cb043859229810947da6c52e600d34b55 (diff) |
Avoid doing type switching in inner functions
The CPU profiler tells me that the encoder is spending a lot of time on
type switches.
Diffstat (limited to 'internal/base64.go')
-rw-r--r-- | internal/base64.go | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/internal/base64.go b/internal/base64.go index 15adbf4..291a229 100644 --- a/internal/base64.go +++ b/internal/base64.go @@ -19,7 +19,10 @@ type base64Decoder struct { bufLen int } -func NewBase64Decoder(w io.Writer) io.WriteCloser { +func NewBase64Decoder(w io.Writer) interface { + io.WriteCloser + RuneWriter +} { return &base64Decoder{ dst: w, } @@ -112,6 +115,10 @@ func (dec *base64Decoder) Write(dat []byte) (int, error) { return len(dat), nil } +func (dec *base64Decoder) WriteRune(r rune) (int, error) { + return WriteRune(dec, r) +} + func (dec *base64Decoder) Close() error { if dec.bufLen == 0 { return nil |