1use std::path::PathBuf;
2
3#[derive(Debug, thiserror::Error)]
5pub enum Error {
6 #[error("IO error at {path}: {source}")]
7 Io {
8 path: PathBuf,
9 source: std::io::Error,
10 },
11
12 #[error("Config error: {0}")]
13 Config(String),
14
15 #[error("Config parse error: {0}")]
16 ConfigParse(#[from] toml::de::Error),
17
18 #[error("Trash error: {0}")]
19 Trash(String),
20
21 #[error("Scanner error: {0}")]
22 Scanner(String),
23}
24
25impl Error {
26 pub fn io(path: impl Into<PathBuf>, source: std::io::Error) -> Self {
27 Self::Io {
28 path: path.into(),
29 source,
30 }
31 }
32}
33
34pub type Result<T> = std::result::Result<T, Error>;