mirror of
https://github.com/gin-gonic/gin.git
synced 2025-10-16 21:32:11 +08:00
48 lines
989 B
Go
48 lines
989 B
Go
// Copyright 2022 Gin Core Team. All rights reserved.
|
|
// Use of this source code is governed by a MIT style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
//go:build sonic && avx && (linux || windows || darwin) && amd64
|
|
// +build sonic
|
|
// +build avx
|
|
// +build linux windows darwin
|
|
// +build amd64
|
|
|
|
package json
|
|
|
|
import (
|
|
"io"
|
|
|
|
"github.com/bytedance/sonic"
|
|
"github.com/gin-gonic/gin/codec/api"
|
|
)
|
|
|
|
func init() {
|
|
Api = sonicApi{}
|
|
}
|
|
|
|
var json = sonic.ConfigStd
|
|
|
|
type sonicApi struct {
|
|
}
|
|
|
|
func (j sonicApi) Marshal(v any) ([]byte, error) {
|
|
return json.Marshal(v)
|
|
}
|
|
|
|
func (j sonicApi) Unmarshal(data []byte, v any) error {
|
|
return json.Unmarshal(data, v)
|
|
}
|
|
|
|
func (j sonicApi) MarshalIndent(v any, prefix, indent string) ([]byte, error) {
|
|
return json.MarshalIndent(v, prefix, indent)
|
|
}
|
|
|
|
func (j sonicApi) NewEncoder(writer io.Writer) api.JsonEncoder {
|
|
return json.NewEncoder(writer)
|
|
}
|
|
|
|
func (j sonicApi) NewDecoder(reader io.Reader) api.JsonDecoder {
|
|
return json.NewDecoder(reader)
|
|
}
|