func (cfg Config) Froze() API {
	frozenConfig := &frozenConfig{
		sortMapKeys:   cfg.SortMapKeys,
		indentionStep: cfg.IndentionStep,
		streamPool:    make(chan *Stream, 16),
		iteratorPool:  make(chan *Iterator, 16),
	}
	atomic.StorePointer(&frozenConfig.decoderCache, unsafe.Pointer(&map[string]ValDecoder{}))
	atomic.StorePointer(&frozenConfig.encoderCache, unsafe.Pointer(&map[string]ValEncoder{}))
	if cfg.MarshalFloatWith6Digits {
		frozenConfig.marshalFloatWith6Digits()
	}
	if cfg.EscapeHTML {
		frozenConfig.escapeHTML()
	}
	if cfg.UseNumber {
		frozenConfig.useNumber()
	}
	if cfg.ValidateJsonRawMessage {
		frozenConfig.validateJsonRawMessage()
	}
	frozenConfig.configBeforeFrozen = cfg
	return frozenConfig
}
Froze forge API from config
package jsoniter
import (
	"encoding/json"
	"errors"
	"io"
	"reflect"
	"sync/atomic"
	"unsafe"
)
type Config struct {
	IndentionStep           int
	MarshalFloatWith6Digits bool
	EscapeHTML              bool
	SortMapKeys             bool
	UseNumber               bool
	TagKey                  string
	ValidateJsonRawMessage  bool
}
type frozenConfig struct {
	configBeforeFrozen Config
	sortMapKeys        bool
	indentionStep      int
	decoderCache       unsafe.Pointer
	encoderCache       unsafe.Pointer
	extensions         []Extension
	streamPool         chan *Stream
	iteratorPool       chan *Iterator
}
type API interface {
	IteratorPool
	StreamPool
	MarshalToString(v interface{}) (string, error)
	Marshal(v interface{}) ([]byte, error)
	MarshalIndent(v interface{}, prefix, indent string) ([]byte, error)
	UnmarshalFromString(str string, v interface{}) error
	Unmarshal(data []byte, v interface{}) error
	Get(data []byte, path ...interface{}) Any
	NewEncoder(writer io.Writer) *Encoder
	NewDecoder(reader io.Reader) *Decoder
	Valid(data []byte) bool
}
var ConfigDefault = Config{
	EscapeHTML: true,
}.Froze()
var ConfigCompatibleWithStandardLibrary = Config{
	EscapeHTML:             true,
	SortMapKeys:            true,
	ValidateJsonRawMessage: true,
}.Froze()
var ConfigFastest = Config{
	EscapeHTML:              false,
	MarshalFloatWith6Digits: true,
}.Froze()