* Add support for rustls as TLS backend
* Use a "use-*" prefix for the TLS features
* Only enable rustls if native-tls is not enabled
* Allows several TLS components to coexist
* Update docs for rustls mentions
* Enable all features on docs.rs
* Rename TLS feature flags from "use-*" to "*-tls"
* Make native-tls the default
* Move TLS related errors to a separate enum
* Add changelog entry about rustls support
* Fix wrong naming in main error enum
* Simplify docs about tls feature flag usage
* Replace Redirection error with a general Http error that owns the
response
* Make the default client connect function iterative instead of
recursive
* Add a limit to the amount of redirects a client will attempt to
perform
* The connect() function defined in this crate will automatically follow
redirecting responses.
* Adds Error::Redirection, which is a special case of Error::Http that
extracts the redirection target from the response headers, and stores it
in the error object. Client implementations that build upon tungstenite
can use this to implement redirecting.
* A catch-all solution for redirects is not possible due to the
abstraction transforming socket types to Read + Write, implementations
that use the client_* methods need to handle redirections themselves.
The impl of Display for StatusCode already includes the canonical reason
if it exists. The current implementation duplicates this (e.g. the
status line will read "101 Switching Protocols Switching Protocols", or
"400 Bad Request Bad Request".
As stated in standard library documentation:
> One should always prefer implementing From over Into because implementing From automatically
> provides one with an implementation of Into thanks to the blanket implementation in the standard library.
And this provides the way to use u16::from(close_code)