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