mirror of
https://github.com/go-micro/go-micro.git
synced 2025-06-12 22:07:47 +02:00
add all the plugins
This commit is contained in:
58
plugins/codec/json-iterator/json.go
Normal file
58
plugins/codec/json-iterator/json.go
Normal file
@ -0,0 +1,58 @@
|
||||
// Package json iterator provides a json codec
|
||||
package json
|
||||
|
||||
import (
|
||||
// jsonstd "encoding/json"
|
||||
"io"
|
||||
|
||||
jsoniter "github.com/json-iterator/go"
|
||||
"github.com/micro/go-micro/v2/codec"
|
||||
)
|
||||
|
||||
type Codec struct {
|
||||
Conn io.ReadWriteCloser
|
||||
|
||||
// StdEncoder *jsonstd.Encoder
|
||||
// StdDecoder *jsonstd.Decoder
|
||||
IterEncoder *jsoniter.Encoder
|
||||
IterDecoder *jsoniter.Decoder
|
||||
}
|
||||
|
||||
func (c *Codec) ReadHeader(m *codec.Message, t codec.MessageType) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Codec) ReadBody(b interface{}) error {
|
||||
if b == nil {
|
||||
return nil
|
||||
}
|
||||
// if pb, ok := b.(proto.Message); ok {
|
||||
// return jsonpb.UnmarshalNext(c.StdDecoder, pb)
|
||||
// }
|
||||
return c.IterDecoder.Decode(b)
|
||||
}
|
||||
|
||||
func (c *Codec) Write(m *codec.Message, b interface{}) error {
|
||||
if b == nil {
|
||||
return nil
|
||||
}
|
||||
return c.IterEncoder.Encode(b)
|
||||
}
|
||||
|
||||
func (c *Codec) Close() error {
|
||||
return c.Conn.Close()
|
||||
}
|
||||
|
||||
func (c *Codec) String() string {
|
||||
return "json"
|
||||
}
|
||||
|
||||
func NewCodec(c io.ReadWriteCloser) codec.Codec {
|
||||
return &Codec{
|
||||
Conn: c,
|
||||
// StdDecoder: jsonstd.NewDecoder(c),
|
||||
// StdEncoder: jsonstd.NewEncoder(c),
|
||||
IterDecoder: jsoniter.NewDecoder(c),
|
||||
IterEncoder: jsoniter.NewEncoder(c),
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user