From ab3ad56df77aa32409d893fb23b1e3cce8ecff2c Mon Sep 17 00:00:00 2001 From: Vasiliy Tolstov Date: Thu, 19 Nov 2020 12:06:08 +0300 Subject: [PATCH] implement Marshal/Unmarshal in codec interface Signed-off-by: Vasiliy Tolstov --- proto.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/proto.go b/proto.go index cbfc249..16b663f 100644 --- a/proto.go +++ b/proto.go @@ -13,6 +13,22 @@ type Codec struct { Conn io.ReadWriteCloser } +func (c *Codec) Marshal(v interface{}) ([]byte, error) { + m, ok := v.(proto.Message) + if !ok { + return nil, codec.ErrInvalidMessage + } + return proto.Marshal(m) +} + +func (c *Codec) Unmarshal(data []byte, v interface{}) error { + m, ok := v.(proto.Message) + if !ok { + return codec.ErrInvalidMessage + } + return proto.Unmarshal(data, m) +} + func (c *Codec) ReadHeader(m *codec.Message, t codec.MessageType) error { return nil }