1use crate::err;
2
3pub type Result<T, E = super::Error> = std::result::Result<T, E>;
5
6pub trait ResultExt<T> {
7 fn map_not_found(self) -> Result<T>;
8 fn map_permission_denied(self) -> Result<T>;
9 fn map_conn_refused(self) -> Result<T>;
10 fn map_conn_reset(self) -> Result<T>;
11 fn map_conn_aborted(self) -> Result<T>;
12 fn map_not_connected(self) -> Result<T>;
13 fn map_in_use(self) -> Result<T>;
14 fn map_addr_not_available(self) -> Result<T>;
15 fn map_broken_pipe(self) -> Result<T>;
16 fn map_already_exists(self) -> Result<T>;
17 fn map_would_block(self) -> Result<T>;
18 fn map_invalid_input(self) -> Result<T>;
19 fn map_invalid_data(self) -> Result<T>;
20 fn map_timeout(self) -> Result<T>;
21 fn map_write_zero(self) -> Result<T>;
22 fn map_interrupted(self) -> Result<T>;
23 fn map_unsupported(self) -> Result<T>;
24 fn map_unexpected_eof(self) -> Result<T>;
25 fn map_out_of_memory(self) -> Result<T>;
26 fn map_other(self) -> Result<T>;
27}
28
29impl<T, E: std::error::Error + Send + Sync + 'static> ResultExt<T> for Result<T, E> {
30 #[inline]
31 fn map_not_found(self) -> Result<T> {
32 self.map_err(err!(@not_found))
33 }
34 #[inline]
35 fn map_permission_denied(self) -> Result<T> {
36 self.map_err(err!(@permission_denied))
37 }
38 #[inline]
39 fn map_conn_refused(self) -> Result<T> {
40 self.map_err(err!(@conn_refused))
41 }
42 #[inline]
43 fn map_conn_reset(self) -> Result<T> {
44 self.map_err(err!(@conn_reset))
45 }
46 #[inline]
47 fn map_conn_aborted(self) -> Result<T> {
48 self.map_err(err!(@conn_aborted))
49 }
50 #[inline]
51 fn map_not_connected(self) -> Result<T> {
52 self.map_err(err!(@not_connected))
53 }
54 #[inline]
55 fn map_in_use(self) -> Result<T> {
56 self.map_err(err!(@in_use))
57 }
58 #[inline]
59 fn map_addr_not_available(self) -> Result<T> {
60 self.map_err(err!(@addr_not_available))
61 }
62 #[inline]
63 fn map_broken_pipe(self) -> Result<T> {
64 self.map_err(err!(@broken_pipe))
65 }
66 #[inline]
67 fn map_already_exists(self) -> Result<T> {
68 self.map_err(err!(@already_exists))
69 }
70 #[inline]
71 fn map_would_block(self) -> Result<T> {
72 self.map_err(err!(@would_block))
73 }
74 #[inline]
75 fn map_invalid_input(self) -> Result<T> {
76 self.map_err(err!(@invalid_input))
77 }
78 #[inline]
79 fn map_invalid_data(self) -> Result<T> {
80 self.map_err(err!(@invalid_data))
81 }
82 #[inline]
83 fn map_timeout(self) -> Result<T> {
84 self.map_err(err!(@timeout))
85 }
86 #[inline]
87 fn map_write_zero(self) -> Result<T> {
88 self.map_err(err!(@write_zero))
89 }
90 #[inline]
91 fn map_interrupted(self) -> Result<T> {
92 self.map_err(err!(@interrupted))
93 }
94 #[inline]
95 fn map_unsupported(self) -> Result<T> {
96 self.map_err(err!(@unsupported))
97 }
98 #[inline]
99 fn map_unexpected_eof(self) -> Result<T> {
100 self.map_err(err!(@unexpected_eof))
101 }
102 #[inline]
103 fn map_out_of_memory(self) -> Result<T> {
104 self.map_err(err!(@out_of_memory))
105 }
106 #[inline]
107 fn map_other(self) -> Result<T> {
108 self.map_err(err!(@other))
109 }
110}