1 use std::error::Error;
2 
3 pub trait AsDynError {
as_dyn_error(&self) -> &(dyn Error + 'static)4     fn as_dyn_error(&self) -> &(dyn Error + 'static);
5 }
6 
7 impl<T: Error + 'static> AsDynError for T {
8     #[inline]
as_dyn_error(&self) -> &(dyn Error + 'static)9     fn as_dyn_error(&self) -> &(dyn Error + 'static) {
10         self
11     }
12 }
13 
14 impl AsDynError for dyn Error + 'static {
15     #[inline]
as_dyn_error(&self) -> &(dyn Error + 'static)16     fn as_dyn_error(&self) -> &(dyn Error + 'static) {
17         self
18     }
19 }
20 
21 impl AsDynError for dyn Error + Send + 'static {
22     #[inline]
as_dyn_error(&self) -> &(dyn Error + 'static)23     fn as_dyn_error(&self) -> &(dyn Error + 'static) {
24         self
25     }
26 }
27 
28 impl AsDynError for dyn Error + Send + Sync + 'static {
29     #[inline]
as_dyn_error(&self) -> &(dyn Error + 'static)30     fn as_dyn_error(&self) -> &(dyn Error + 'static) {
31         self
32     }
33 }
34