Skip to main content

diskard_core/
error.rs

1use std::path::PathBuf;
2
3/// All errors that can occur in diskard-core.
4#[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>;