kutil_std/error/
io.rs

1use std::{io, path::*};
2
3//
4// WithPath
5//
6
7/// With path.
8pub trait WithPath {
9    /// With path.
10    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}