refactor(error): improve organization of Error kinds
- Placed all cases of "unexpected bytes" errors into the `UnexpectedMessage` variant. - Placed all cases of "unexpected EOF" errors into the `IncompleteMessage` variant. Description is now generic about "connection closed before message completed", instead of mentioning "request" or "response. - Added `Error::is_incomplete_message()` accessor to help checking for unexpected closures. - Renamed some variants to be clearer when viewing the `Debug` format. - Collected all "user" errors into an internal `User` enum, to prevent forgetting to update the `is_user()` method.
This commit is contained in:
@@ -577,14 +577,14 @@ impl<T: Poolable> Checkout<T> {
|
||||
if value.is_open() {
|
||||
Ok(Async::Ready(Some(self.pool.reuse(&self.key, value))))
|
||||
} else {
|
||||
Err(::Error::new_canceled(Some(CANCELED)))
|
||||
Err(::Error::new_canceled().with(CANCELED))
|
||||
}
|
||||
},
|
||||
Ok(Async::NotReady) => {
|
||||
self.waiter = Some(rx);
|
||||
Ok(Async::NotReady)
|
||||
},
|
||||
Err(_canceled) => Err(::Error::new_canceled(Some(CANCELED))),
|
||||
Err(_canceled) => Err(::Error::new_canceled().with(CANCELED)),
|
||||
}
|
||||
} else {
|
||||
Ok(Async::Ready(None))
|
||||
@@ -654,7 +654,7 @@ impl<T: Poolable> Future for Checkout<T> {
|
||||
if let Some(pooled) = self.checkout() {
|
||||
Ok(Async::Ready(pooled))
|
||||
} else if !self.pool.is_enabled() {
|
||||
Err(::Error::new_canceled(Some("pool is disabled")))
|
||||
Err(::Error::new_canceled().with("pool is disabled"))
|
||||
} else {
|
||||
Ok(Async::NotReady)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user