codec: add []byte support to noop codec

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
Василий Толстов 2022-10-26 08:26:10 +03:00
parent 416bb313fc
commit d659db69ff
2 changed files with 19 additions and 1 deletions

View File

@ -106,6 +106,10 @@ func (c *noopCodec) Unmarshal(d []byte, v interface{}, opts ...Option) error {
case *string: case *string:
*ve = string(d) *ve = string(d)
return nil return nil
case []byte:
ve = make([]byte, len(d))
copy(ve, d)
return nil
case *[]byte: case *[]byte:
*ve = d *ve = d
return nil return nil

View File

@ -5,7 +5,7 @@ import (
"testing" "testing"
) )
func TestNoopBytes(t *testing.T) { func TestNoopBytesPtr(t *testing.T) {
req := []byte("test req") req := []byte("test req")
rsp := make([]byte, len(req)) rsp := make([]byte, len(req))
@ -19,6 +19,20 @@ func TestNoopBytes(t *testing.T) {
} }
} }
func TestNoopBytes(t *testing.T) {
req := []byte("test req")
var rsp []byte
nc := NewCodec()
if err := nc.Unmarshal(req, &rsp); err != nil {
t.Fatal(err)
}
if !bytes.Equal(req, rsp) {
t.Fatalf("req not eq rsp: %s != %s", req, rsp)
}
}
func TestNoopString(t *testing.T) { func TestNoopString(t *testing.T) {
req := []byte("test req") req := []byte("test req")
var rsp string var rsp string