use std::io;
use std::path::{Path, PathBuf};
use thiserror::Error;
#[derive(Error, Debug)]
pub enum WalkError {
#[error("I/O error at {}: {source}", path.display())]
Io {
path: PathBuf,
#[source]
source: io::Error,
},
}
impl WalkError {
pub(crate) fn io(path: impl Into<PathBuf>, source: io::Error) -> Self {
Self::Io {
path: path.into(),
source,
}
}
pub fn path(&self) -> &Path {
match self {
Self::Io { path, .. } => path,
}
}
pub fn io_kind(&self) -> io::ErrorKind {
match self {
Self::Io { source, .. } => source.kind(),
}
}
}