func (s *codec) WriteResponse(resp *rpc.Response, pb interface{}) error { var header rpc4.Header header.Method, header.Sequence, header.MessageType = &resp.ServiceMethod, &resp.Seq, rpc4.Header_RESPONSE.Enum() var data []byte if resp.Error == "" { var err error if data, err = proto.Marshal(pb.(proto.Message)); err != nil { resp.Error = err.Error() } } if resp.Error != "" { header.MessageType = rpc4.Header_ERROR.Enum() data = []byte(resp.Error) } return s.writeHeaderData(&header, data) }