This has some implications for Error:
- because attohttpc doesn't distinguish between errors
when serializing or deserializing request/response
data, Error::RequestJson and Error::ResponseJson have
been merged into Error::Json. In practice this shouldn't
matter much because request data is (usually) well-formed.
- attohttpc also doesn't return errors for HTTP responses
with statuses in the [400-599] range, so manual conversion
to an error is needed (this now happens in ResponseType::from_response).
Add the `rate_limit` field to all response types,
which contains rate limiting information such as
maximum and remaining requests in the current
time frame, as well as when the next time frame
starts.
All response types now also implement the `ResponseType`
trait (internal for now). Currently this trait allows
converting from `ureq::Response` to the response type,
by extracting rate limiting information from the response
headers and deserializing the response body into the
response type.