1#[derive(Debug, snafu::Snafu)]
3#[snafu(visibility(pub(crate)))]
4pub enum Error {
5 #[snafu(display("Couldn't execute {exe}"))]
6 CantExecute { source: std::io::Error, exe: String },
7
8 #[snafu(display("Could not read metadata of file {path:?}"))]
9 CantReadFileMetadata {
10 source: std::io::Error,
11 path: std::path::PathBuf,
12 },
13
14 #[snafu(display("Could not read file {path:?}"))]
15 CantReadFile {
16 source: std::io::Error,
17 path: std::path::PathBuf,
18 },
19
20 #[snafu(display("Could not read dir {path:?}"))]
21 CantReadDir {
22 source: std::io::Error,
23 path: std::path::PathBuf,
24 },
25
26 #[snafu(display("Could not parse mountinfo"))]
27 #[cfg(target_os = "linux")]
28 ParseMountInfo {
29 source: crate::linux::ParseMountInfoError,
30 },
31
32 #[snafu(display("Unexpected format"))]
33 UnexpectedFormat,
34
35 #[snafu(display("Error parsing device id"))]
36 ParseDeviceId,
37
38 #[snafu(display("Failed to call service {service:?}"))]
39 ServiceCallFailed { service: &'static str },
40
41 #[snafu(display("Failed to read {key:?}"))]
42 MissingValue { key: &'static str },
43
44 #[snafu(display("Device layer not found"))]
45 DeviceLayerNotFound,
46
47 #[cfg(windows)]
48 #[snafu(display("Windows API call failed: {api}"))]
49 WindowsApiError {
50 source: windows::core::Error,
51 api: String,
52 },
53}