code: func (r *Request) Do() Result {
  	r.tryThrottle()
  
  	var result Result
  	err := r.request(func(req *http.Request, resp *http.Response) {
  		result = r.transformResponse(resp, req)
  	})
  	if err != nil {
  		return Result{err: err}
  	}
  	return result
  }
docs: // Do formats and executes the request. Returns a Result object for easy response
  // processing.
  //
  // Error type:
  //  * If the request can't be constructed, or an error happened earlier while building its
  //    arguments: *RequestConstructionError
  //  * If the server responds with a status: *errors.StatusError or *errors.UnexpectedObjectError
  //  * http.Client.Do errors are returned directly.