derive_more/
as_dyn_error.rs1use core::{error::Error, panic::UnwindSafe};
18
19#[doc(hidden)]
20pub trait AsDynError<'a>: Sealed {
21 fn __derive_more_as_dyn_error(&self) -> &(dyn Error + 'a);
22}
23
24impl<'a, T: Error + 'a> AsDynError<'a> for T {
25 #[inline]
26 fn __derive_more_as_dyn_error(&self) -> &(dyn Error + 'a) {
27 self
28 }
29}
30
31impl<'a> AsDynError<'a> for dyn Error + 'a {
32 #[inline]
33 fn __derive_more_as_dyn_error(&self) -> &(dyn Error + 'a) {
34 self
35 }
36}
37
38impl<'a> AsDynError<'a> for dyn Error + Send + 'a {
39 #[inline]
40 fn __derive_more_as_dyn_error(&self) -> &(dyn Error + 'a) {
41 self
42 }
43}
44
45impl<'a> AsDynError<'a> for dyn Error + Send + Sync + 'a {
46 #[inline]
47 fn __derive_more_as_dyn_error(&self) -> &(dyn Error + 'a) {
48 self
49 }
50}
51
52impl<'a> AsDynError<'a> for dyn Error + Send + Sync + UnwindSafe + 'a {
53 #[inline]
54 fn __derive_more_as_dyn_error(&self) -> &(dyn Error + 'a) {
55 self
56 }
57}
58
59#[doc(hidden)]
60pub trait Sealed {}
61impl<T: Error> Sealed for T {}
62impl Sealed for dyn Error + '_ {}
63impl Sealed for dyn Error + Send + '_ {}
64impl Sealed for dyn Error + Send + Sync + '_ {}
65impl Sealed for dyn Error + Send + Sync + UnwindSafe + '_ {}