1use std::{io, path::*};
2
3pub trait WithPath {
9 fn with_path<PathT>(self, path: PathT) -> Self
11 where
12 PathT: AsRef<Path>;
13}
14
15impl WithPath for io::Error {
16 fn with_path<PathT>(self, path: PathT) -> Self
17 where
18 PathT: AsRef<Path>,
19 {
20 Self::new(self.kind(), format!("{}: {}", self, path.as_ref().display()))
21 }
22}
23
24impl<OkT> WithPath for io::Result<OkT> {
25 fn with_path<PathT>(self, path: PathT) -> Self
26 where
27 PathT: AsRef<Path>,
28 {
29 self.map_err(|error| error.with_path(path))
30 }
31}