eyre/src/as_error.rs
David Tolnay 7dcc85121b
Move trait bounds to where-clauses
I find it more readable how this appears in rustdoc.
2019-10-05 00:23:03 -04:00

31 lines
641 B
Rust

use std::error::Error as StdError;
use crate::Error;
/// View type as an error object.
pub trait AsError {
/// View type as an error object.
fn as_error(&self) -> &(dyn StdError + Send + Sync + 'static);
}
impl<T> AsError for T
where
T: StdError + Send + Sync + 'static,
{
fn as_error(&self) -> &(dyn StdError + Send + Sync + 'static) {
self
}
}
impl AsError for dyn StdError + Send + Sync + 'static {
fn as_error(&self) -> &(dyn StdError + Send + Sync + 'static) {
self
}
}
impl AsError for Error {
fn as_error(&self) -> &(dyn StdError + Send + Sync + 'static) {
&**self
}
}