summaryrefslogtreecommitdiff
path: root/internal/packet/encoders.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/packet/encoders.go')
-rw-r--r--internal/packet/encoders.go29
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
+ }
}