derive_more/vendor/thiserror/
aserror.rs1use core::{error::Error, panic::UnwindSafe};
2
3#[doc(hidden)]
4pub trait AsDynError<'a>: Sealed {
5 fn as_dyn_error(&self) -> &(dyn Error + 'a);
6}
7
8impl<'a, T: Error + 'a> AsDynError<'a> for T {
9 #[inline]
10 fn as_dyn_error(&self) -> &(dyn Error + 'a) {
11 self
12 }
13}
14
15impl<'a> AsDynError<'a> for dyn Error + 'a {
16 #[inline]
17 fn as_dyn_error(&self) -> &(dyn Error + 'a) {
18 self
19 }
20}
21
22impl<'a> AsDynError<'a> for dyn Error + Send + 'a {
23 #[inline]
24 fn as_dyn_error(&self) -> &(dyn Error + 'a) {
25 self
26 }
27}
28
29impl<'a> AsDynError<'a> for dyn Error + Send + Sync + 'a {
30 #[inline]
31 fn as_dyn_error(&self) -> &(dyn Error + 'a) {
32 self
33 }
34}
35
36impl<'a> AsDynError<'a> for dyn Error + Send + Sync + UnwindSafe + 'a {
37 #[inline]
38 fn as_dyn_error(&self) -> &(dyn Error + 'a) {
39 self
40 }
41}
42
43#[doc(hidden)]
44pub trait Sealed {}
45impl<T: Error> Sealed for T {}
46impl Sealed for dyn Error + '_ {}
47impl Sealed for dyn Error + Send + '_ {}
48impl Sealed for dyn Error + Send + Sync + '_ {}
49impl Sealed for dyn Error + Send + Sync + UnwindSafe + '_ {}