diff options
Diffstat (limited to 'vendor/github.com/bytedance/sonic/internal/rt/base64_compat.go')
| -rw-r--r-- | vendor/github.com/bytedance/sonic/internal/rt/base64_compat.go | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/vendor/github.com/bytedance/sonic/internal/rt/base64_compat.go b/vendor/github.com/bytedance/sonic/internal/rt/base64_compat.go index 791f79355..bd3150fe0 100644 --- a/vendor/github.com/bytedance/sonic/internal/rt/base64_compat.go +++ b/vendor/github.com/bytedance/sonic/internal/rt/base64_compat.go @@ -1,4 +1,4 @@ -// +build !amd64 !go1.17 go1.24 +// +build !amd64 !go1.17 go1.25 package rt @@ -15,6 +15,23 @@ func DecodeBase64(raw []byte) ([]byte, error) { return ret[:n], nil } -func EncodeBase64(src []byte) string { +func EncodeBase64ToString(src []byte) string { return base64.StdEncoding.EncodeToString(src) } + +func EncodeBase64(buf []byte, src []byte) []byte { + if len(src) == 0 { + return append(buf, '"', '"') + } + buf = append(buf, '"') + need := base64.StdEncoding.EncodedLen(len(src)) + if cap(buf) - len(buf) < need { + tmp := make([]byte, len(buf), len(buf) + need*2) + copy(tmp, buf) + buf = tmp + } + base64.StdEncoding.Encode(buf[len(buf):cap(buf)], src) + buf = buf[:len(buf) + need] + buf = append(buf, '"') + return buf +} |
