code: func (c *msgpackCodec) ReadBody(v interface{}) error {
  	if !c.body {
  		return nil
  	}
  
  	r := msgp.NewReader(c.rwc)
  
  	// Body is present, but no value to decode into.
  	if v == nil {
  		return r.Skip()
  	}
  
  	switch c.mt {
  	case codec.Request, codec.Response, codec.Publication:
  		return decodeBody(r, v)
  	default:
  		return fmt.Errorf("Unrecognized message type: %v", c.mt)
  	}
  }
docs: // ReadBody reads the body of the message. It is assumed the value being
  // decoded into is a satisfies the msgp.Decodable interface.