diff options
Diffstat (limited to 'internal/packet/encoders.go')
| -rw-r--r-- | internal/packet/encoders.go | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/internal/packet/encoders.go b/internal/packet/encoders.go index e70d0e8..f5841ce 100644 --- a/internal/packet/encoders.go +++ b/internal/packet/encoders.go @@ -1,10 +1,9 @@ package packet import ( - "bytes" "encoding/json" - "io" + "github.com/kyren223/eko/pkg/assert" "github.com/vmihailenco/msgpack/v5" ) @@ -13,7 +12,7 @@ type TypedMessage interface { } type defaultPacketEncoder struct { - io.Reader + data []byte encoding Encoding packetType PacketType } @@ -26,28 +25,28 @@ func (e defaultPacketEncoder) Type() PacketType { return e.packetType } -func NewJsonEncoder(message TypedMessage) (PacketEncoder, error) { +func (e defaultPacketEncoder) Payload() []byte { + return e.data +} + +func NewJsonEncoder(message TypedMessage) PacketEncoder { data, err := json.Marshal(message) - if err != nil { - return nil, err - } + assert.NoError(err, "encoding a message with JSON should never fail") return defaultPacketEncoder{ - Reader: bytes.NewReader(data), + data: data, encoding: EncodingJson, packetType: message.Type(), - }, nil + } } -func NewMsgPackEncoder(message TypedMessage) (PacketEncoder, error) { +func NewMsgPackEncoder(message TypedMessage) PacketEncoder { data, err := msgpack.Marshal(message) - if err != nil { - return nil, err - } + assert.NoError(err, "encoding a message with msg pack should never fail") return defaultPacketEncoder{ - Reader: bytes.NewReader(data), + data: data, encoding: EncodingMsgPack, packetType: message.Type(), - }, nil + } } |
