2018-10-29 13:43:48 -07:00
|
|
|
//! Error types
|
|
|
|
|
|
2019-02-19 16:30:37 -05:00
|
|
|
#[cfg(feature = "ext")]
|
|
|
|
|
pub use ext::CollectError;
|
|
|
|
|
#[cfg(feature = "ext")]
|
|
|
|
|
pub use ext::CollectVecError;
|
|
|
|
|
#[cfg(feature = "ext")]
|
|
|
|
|
pub use ext::LimitError;
|
2018-10-29 13:43:48 -07:00
|
|
|
|
|
|
|
|
// Being crate-private, we should be able to swap the type out in a
|
|
|
|
|
// backwards compatible way.
|
|
|
|
|
pub(crate) mod internal {
|
|
|
|
|
use std::{error, fmt};
|
|
|
|
|
|
|
|
|
|
/// An error that can never occur
|
|
|
|
|
pub enum Never {}
|
|
|
|
|
|
|
|
|
|
impl fmt::Debug for Never {
|
|
|
|
|
fn fmt(&self, _f: &mut fmt::Formatter) -> fmt::Result {
|
|
|
|
|
match *self {}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl fmt::Display for Never {
|
|
|
|
|
fn fmt(&self, _f: &mut fmt::Formatter) -> fmt::Result {
|
|
|
|
|
match *self {}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl error::Error for Never {
|
|
|
|
|
fn description(&self) -> &str {
|
|
|
|
|
match *self {}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|