summaryrefslogtreecommitdiff
path: root/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go
diff options
context:
space:
mode:
authorLibravatar dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>2024-05-06 08:50:47 +0000
committerLibravatar GitHub <noreply@github.com>2024-05-06 08:50:47 +0000
commita5f28fe0c923984c263592e82bbce99b0032b794 (patch)
tree403544ad5305eb171a85d2b4c59559f83abd87a7 /vendor/github.com/bytedance/sonic/encoder/encoder_compat.go
parent[chore]: Bump golang.org/x/image from 0.15.0 to 0.16.0 (#2898) (diff)
downloadgotosocial-a5f28fe0c923984c263592e82bbce99b0032b794.tar.xz
[chore]: Bump github.com/gin-contrib/gzip from 1.0.0 to 1.0.1 (#2899)
Bumps [github.com/gin-contrib/gzip](https://github.com/gin-contrib/gzip) from 1.0.0 to 1.0.1. - [Release notes](https://github.com/gin-contrib/gzip/releases) - [Changelog](https://github.com/gin-contrib/gzip/blob/master/.goreleaser.yaml) - [Commits](https://github.com/gin-contrib/gzip/compare/v1.0.0...v1.0.1) --- updated-dependencies: - dependency-name: github.com/gin-contrib/gzip dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Diffstat (limited to 'vendor/github.com/bytedance/sonic/encoder/encoder_compat.go')
-rw-r--r--vendor/github.com/bytedance/sonic/encoder/encoder_compat.go27
1 files changed, 17 insertions, 10 deletions
diff --git a/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go b/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go
index 320dd9b5c..38761c453 100644
--- a/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go
+++ b/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go
@@ -28,9 +28,12 @@ import (
)
func init() {
- println("WARNING: sonic only supports Go1.16~1.22 && CPU amd64, but your environment is not suitable")
+ println("WARNING:(encoder) sonic only supports Go1.16~1.22 && CPU amd64, but your environment is not suitable")
}
+// EnableFallback indicates if encoder use fallback
+const EnableFallback = true
+
// Options is a set of encoding options.
type Options uint64
@@ -188,15 +191,19 @@ func Encode(val interface{}, opts Options) ([]byte, error) {
// EncodeInto is like Encode but uses a user-supplied buffer instead of allocating
// a new one.
func EncodeInto(buf *[]byte, val interface{}, opts Options) error {
- if buf == nil {
- panic("user-supplied buffer buf is nil")
- }
- w := bytes.NewBuffer(*buf)
- enc := json.NewEncoder(w)
- enc.SetEscapeHTML((opts & EscapeHTML) != 0)
- err := enc.Encode(val)
- *buf = w.Bytes()
- return err
+ if buf == nil {
+ panic("user-supplied buffer buf is nil")
+ }
+ w := bytes.NewBuffer(*buf)
+ enc := json.NewEncoder(w)
+ enc.SetEscapeHTML((opts & EscapeHTML) != 0)
+ err := enc.Encode(val)
+ *buf = w.Bytes()
+ l := len(*buf)
+ if l > 0 && (opts & NoEncoderNewline != 0) && (*buf)[l-1] == '\n' {
+ *buf = (*buf)[:l-1]
+ }
+ return err
}
// HTMLEscape appends to dst the JSON-encoded src with <, >, &, U+2028 and U+2029