1
0
Fork 0
mirror of https://github.com/eosswedenorg/thalos synced 2026-06-17 04:30:03 +02:00

api/go.mod: wwitch github.com/shamaton/msgpack/v2 to github.com/ugorji/go/codec

This commit is contained in:
Henrik Hautakoski 2023-05-09 13:13:03 +02:00
parent ba05d3d7de
commit af6d72946f
5 changed files with 80 additions and 1224 deletions

View file

@ -1,18 +1,34 @@
package msgpack
import (
"github.com/shamaton/msgpack/v2"
"reflect"
"github.com/ugorji/go/codec"
"github.com/eosswedenorg/thalos/api/message"
)
//go:generate msgpackgen -v -input-file ../types.go -output-file msgpack.go
var mh codec.MsgpackHandle
func encode(a any) ([]byte, error) {
var b []byte
return b, codec.NewEncoderBytes(&b, &mh).Encode(a)
}
func decode(b []byte, a any) error {
return codec.NewDecoderBytes(b, &mh).Decode(a)
}
func init() {
RegisterGeneratedResolver()
mh.MapType = reflect.TypeOf(map[string]any(nil))
mh.Canonical = true
// Wierd name but this is needed for the newest version of msgpack
// that has support for time and string datatypes etc.
mh.WriteExt = true
message.RegisterCodec("msgpack", message.Codec{
Encoder: msgpack.Marshal,
Decoder: msgpack.Unmarshal,
Encoder: encode,
Decoder: decode,
})
}