gitee.com/sasukebo/go-micro/v4@v4.7.1/codec/bytes/marshaler.go (about) 1 package bytes 2 3 import ( 4 "gitee.com/sasukebo/go-micro/v4/codec" 5 ) 6 7 type Marshaler struct{} 8 9 type Message struct { 10 Header map[string]string 11 Body []byte 12 } 13 14 func (n Marshaler) Marshal(v interface{}) ([]byte, error) { 15 switch ve := v.(type) { 16 case *[]byte: 17 return *ve, nil 18 case []byte: 19 return ve, nil 20 case *Message: 21 return ve.Body, nil 22 } 23 return nil, codec.ErrInvalidMessage 24 } 25 26 func (n Marshaler) Unmarshal(d []byte, v interface{}) error { 27 switch ve := v.(type) { 28 case *[]byte: 29 *ve = d 30 return nil 31 case *Message: 32 ve.Body = d 33 return nil 34 } 35 return codec.ErrInvalidMessage 36 } 37 38 func (n Marshaler) String() string { 39 return "bytes" 40 }