Merge commit '6eba9cd92c295c5389944f6adda1f1e83b2cb008' as 'subprojects/thiserror'
This commit is contained in:
50
subprojects/thiserror/src/aserror.rs
Normal file
50
subprojects/thiserror/src/aserror.rs
Normal file
@@ -0,0 +1,50 @@
|
||||
use core::error::Error;
|
||||
use core::panic::UnwindSafe;
|
||||
|
||||
#[doc(hidden)]
|
||||
pub trait AsDynError<'a>: Sealed {
|
||||
fn as_dyn_error(&self) -> &(dyn Error + 'a);
|
||||
}
|
||||
|
||||
impl<'a, T: Error + 'a> AsDynError<'a> for T {
|
||||
#[inline]
|
||||
fn as_dyn_error(&self) -> &(dyn Error + 'a) {
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> AsDynError<'a> for dyn Error + 'a {
|
||||
#[inline]
|
||||
fn as_dyn_error(&self) -> &(dyn Error + 'a) {
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> AsDynError<'a> for dyn Error + Send + 'a {
|
||||
#[inline]
|
||||
fn as_dyn_error(&self) -> &(dyn Error + 'a) {
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> AsDynError<'a> for dyn Error + Send + Sync + 'a {
|
||||
#[inline]
|
||||
fn as_dyn_error(&self) -> &(dyn Error + 'a) {
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> AsDynError<'a> for dyn Error + Send + Sync + UnwindSafe + 'a {
|
||||
#[inline]
|
||||
fn as_dyn_error(&self) -> &(dyn Error + 'a) {
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
#[doc(hidden)]
|
||||
pub trait Sealed {}
|
||||
impl<T: Error> Sealed for T {}
|
||||
impl Sealed for dyn Error + '_ {}
|
||||
impl Sealed for dyn Error + Send + '_ {}
|
||||
impl Sealed for dyn Error + Send + Sync + '_ {}
|
||||
impl Sealed for dyn Error + Send + Sync + UnwindSafe + '_ {}
|
||||
Reference in New Issue
Block a user