code: func (c *EncodedConn) Request(subject string, v interface{}, vPtr interface{}, timeout time.Duration) error {
  	b, err := c.Enc.Encode(subject, v)
  	if err != nil {
  		return err
  	}
  	m, err := c.Conn.Request(subject, b, timeout)
  	if err != nil {
  		return err
  	}
  	if reflect.TypeOf(vPtr) == emptyMsgType {
  		mPtr := vPtr.(*Msg)
  		*mPtr = *m
  	} else {
  		err = c.Enc.Decode(m.Subject, m.Data, vPtr)
  	}
  	return err
  }
docs: // Request will create an Inbox and perform a Request() call
  // with the Inbox reply for the data v. A response will be
  // decoded into the vPtrResponse.