| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | // +build amd64,go1.16,!go1.22/* * Copyright 2023 ByteDance Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package encoderimport (    `github.com/bytedance/sonic/internal/encoder`)// Encoder represents a specific set of encoder configurations.type Encoder = encoder.Encoder// StreamEncoder uses io.Writer as input.type StreamEncoder = encoder.StreamEncoder// Options is a set of encoding options.type Options = encoder.Optionsconst (    // SortMapKeys indicates that the keys of a map needs to be sorted    // before serializing into JSON.    // WARNING: This hurts performance A LOT, USE WITH CARE.    SortMapKeys Options = encoder.SortMapKeys    // EscapeHTML indicates encoder to escape all HTML characters    // after serializing into JSON (see https://pkg.go.dev/encoding/json#HTMLEscape).    // WARNING: This hurts performance A LOT, USE WITH CARE.    EscapeHTML Options = encoder.EscapeHTML    // CompactMarshaler indicates that the output JSON from json.Marshaler    // is always compact and needs no validation    CompactMarshaler Options = encoder.CompactMarshaler    // NoQuoteTextMarshaler indicates that the output text from encoding.TextMarshaler    // is always escaped string and needs no quoting    NoQuoteTextMarshaler Options = encoder.NoQuoteTextMarshaler    // NoNullSliceOrMap indicates all empty Array or Object are encoded as '[]' or '{}',    // instead of 'null'    NoNullSliceOrMap Options = encoder.NoNullSliceOrMap    // ValidateString indicates that encoder should validate the input string    // before encoding it into JSON.    ValidateString Options = encoder.ValidateString    // NoValidateJSONMarshaler indicates that the encoder should not validate the output string    // after encoding the JSONMarshaler to JSON.    NoValidateJSONMarshaler Options = encoder.NoValidateJSONMarshaler    // CompatibleWithStd is used to be compatible with std encoder.    CompatibleWithStd Options = encoder.CompatibleWithStd)var (    // Encode returns the JSON encoding of val, encoded with opts.    Encode = encoder.Encode    // EncodeInto is like Encode but uses a user-supplied buffer instead of allocating a new one.    EncodeIndented = encoder.EncodeIndented    // EncodeIndented is like Encode but applies Indent to format the output.    // Each JSON element in the output will begin on a new line beginning with prefix    // followed by one or more copies of indent according to the indentation nesting.    EncodeInto = encoder.EncodeInto    // HTMLEscape appends to dst the JSON-encoded src with <, >, &, U+2028 and U+2029    // characters inside string literals changed to \u003c, \u003e, \u0026, \u2028, \u2029    // so that the JSON will be safe to embed inside HTML <script> tags.    // For historical reasons, web browsers don't honor standard HTML    // escaping within <script> tags, so an alternative JSON encoding must    // be used.    HTMLEscape = encoder.HTMLEscape    // Pretouch compiles vt ahead-of-time to avoid JIT compilation on-the-fly, in    // order to reduce the first-hit latency.    //    // Opts are the compile options, for example, "option.WithCompileRecursiveDepth" is    // a compile option to set the depth of recursive compile for the nested struct type.    Pretouch = encoder.Pretouch    // Quote returns the JSON-quoted version of s.    Quote = encoder.Quote    // Valid validates json and returns first non-blank character position,    // if it is only one valid json value.    // Otherwise returns invalid character position using start.    //    // Note: it does not check for the invalid UTF-8 characters.    Valid = encoder.Valid    // NewStreamEncoder adapts to encoding/json.NewDecoder API.    //    // NewStreamEncoder returns a new encoder that write to w.    NewStreamEncoder = encoder.NewStreamEncoder)
 |