feat(error): add private __Nonexhaustive variant to Error

BREAKING CHANGE: Adds a new variant to public Error enum. The proper fix
  is to stop matching exhaustively on `hyper::Error`.
This commit is contained in:
Sean McArthur
2015-06-02 10:25:01 -07:00
parent 486a219bc8
commit 7c0421e3fc

View File

@@ -45,6 +45,18 @@ pub enum Error {
Ssl(SslError), Ssl(SslError),
/// An HTTP/2-specific error, coming from the `solicit` library. /// An HTTP/2-specific error, coming from the `solicit` library.
Http2(Http2Error), Http2(Http2Error),
#[doc(hidden)]
__Nonexhaustive(Void)
}
#[doc(hidden)]
pub enum Void {}
impl fmt::Debug for Void {
fn fmt(&self, _: &mut fmt::Formatter) -> fmt::Result {
match *self {}
}
} }
impl fmt::Display for Error { impl fmt::Display for Error {
@@ -65,6 +77,7 @@ impl StdError for Error {
Io(ref e) => e.description(), Io(ref e) => e.description(),
Ssl(ref e) => e.description(), Ssl(ref e) => e.description(),
Http2(ref e) => e.description(), Http2(ref e) => e.description(),
Error::__Nonexhaustive(ref void) => match *void {}
} }
} }