1use super::error::Error;
2
3pub type Result<T> = std::result::Result<T, Error>;
4
5pub trait ResultExt<T> {
6
7 fn error_message_prefixed(self, prefix: impl AsRef<str>) -> Result<T>;
8
9 fn error_path_prefixed(self, prefix: impl AsRef<str>) -> Result<T>;
10
11 fn alter_error_code(self, code: u16) -> Result<T>;
12}
13
14impl<T> ResultExt<T> for std::result::Result<T, Error> {
15
16 fn error_message_prefixed(self, prefix: impl AsRef<str>) -> Self {
17 match self {
18 Ok(t) => Ok(t),
19 Err(e) => Err(e.message_prefixed(prefix)),
20 }
21 }
22
23 fn error_path_prefixed(self, prefix: impl AsRef<str>) -> Self {
24 match self {
25 Ok(t) => Ok(t),
26 Err(e) => Err(e.path_prefixed(prefix)),
27 }
28 }
29
30 fn alter_error_code(self, code: u16) -> Self {
31 match self {
32 Ok(t) => Ok(t),
33 Err(mut e) => Err({
34 e.code = code;
35 e
36 }),
37 }
38 }
39}