summaryrefslogtreecommitdiff
path: root/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/bytedance/sonic/internal/encoder/encoder.go')
-rw-r--r--vendor/github.com/bytedance/sonic/internal/encoder/encoder.go17
1 files changed, 15 insertions, 2 deletions
diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go b/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go
index 3c46061a4..bd8bae357 100644
--- a/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go
+++ b/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go
@@ -40,6 +40,7 @@ const (
bitNoQuoteTextMarshaler
bitNoNullSliceOrMap
bitValidateString
+ bitNoValidateJSONMarshaler
// used for recursive compile
bitPointerValue = 63
@@ -71,6 +72,10 @@ const (
// ValidateString indicates that encoder should validate the input string
// before encoding it into JSON.
ValidateString Options = 1 << bitValidateString
+
+ // NoValidateJSONMarshaler indicates that the encoder should not validate the output string
+ // after encoding the JSONMarshaler to JSON.
+ NoValidateJSONMarshaler Options = 1 << bitNoValidateJSONMarshaler
// CompatibleWithStd is used to be compatible with std encoder.
CompatibleWithStd Options = SortMapKeys | EscapeHTML | CompactMarshaler
@@ -115,6 +120,15 @@ func (self *Encoder) SetValidateString(f bool) {
}
}
+// SetNoValidateJSONMarshaler specifies if option NoValidateJSONMarshaler opens
+func (self *Encoder) SetNoValidateJSONMarshaler(f bool) {
+ if f {
+ self.Opts |= NoValidateJSONMarshaler
+ } else {
+ self.Opts &= ^NoValidateJSONMarshaler
+ }
+}
+
// SetCompactMarshaler specifies if option CompactMarshaler opens
func (self *Encoder) SetCompactMarshaler(f bool) {
if f {
@@ -292,7 +306,6 @@ func Pretouch(vt reflect.Type, opts ...option.CompileOption) error {
cfg := option.DefaultCompileOptions()
for _, opt := range opts {
opt(&cfg)
- break
}
return pretouchRec(map[reflect.Type]uint8{vt: 0}, cfg)
}
@@ -325,4 +338,4 @@ func Valid(data []byte) (ok bool, start int) {
}
return true, ret
-} \ No newline at end of file
+}