package json import ( "bytes" jsoniter "github.com/json-iterator/go" ) type Serder struct { cfg Config api jsoniter.API } func (s *Serder) Encode(obj any) ([]byte, error) { buf := new(bytes.Buffer) enc := s.api.NewEncoder(buf) err := enc.Encode(obj) if err != nil { return nil, err } return buf.Bytes(), nil } func (s *Serder) Decode(data []byte, obj any) error { dec := s.api.NewDecoder(bytes.NewReader(data)) return dec.Decode(&obj) }