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