tidy_browser/
error.rs

1use std::path::PathBuf;
2
3#[cfg(target_os = "macos")]
4use decrypt_cookies::safari::SafariError;
5use decrypt_cookies::{
6    chromium::{builder::ChromiumBuilderError, ChromiumError},
7    firefox::{builder::FirefoxBuilderError, FirefoxError},
8};
9use snafu::{Location, Snafu};
10
11#[derive(Snafu)]
12#[derive(Debug)]
13#[snafu(visibility(pub))]
14pub enum Error {
15    #[snafu(display("Build Chromium: {source}{location}"))]
16    ChromiumBuilder {
17        source: ChromiumBuilderError,
18        #[snafu(implicit)]
19        location: Location,
20    },
21    #[snafu(display("Chromium: {source}{location}"))]
22    Chromium {
23        source: ChromiumError,
24        #[snafu(implicit)]
25        location: Location,
26    },
27    #[snafu(display("Build Firefox: {source}{location}"))]
28    FirefoxBuilder {
29        source: FirefoxBuilderError,
30        #[snafu(implicit)]
31        location: Location,
32    },
33    #[snafu(display("Firefox: {source}{location}"))]
34    Firefox {
35        source: FirefoxError,
36        #[snafu(implicit)]
37        location: Location,
38    },
39    #[cfg(target_os = "macos")]
40    #[snafu(display("Firefox: {source}{location}"))]
41    Safari {
42        source: SafariError,
43        #[snafu(implicit)]
44        location: Location,
45    },
46    #[snafu(display("{source} path: {}{location}", path.display()))]
47    Io {
48        source: std::io::Error,
49        path: PathBuf,
50        #[snafu(implicit)]
51        location: Location,
52    },
53    #[snafu(display("{source}"))]
54    TokioTask {
55        source: tokio::task::JoinError,
56        #[snafu(implicit)]
57        location: Location,
58    },
59}
60
61pub type Result<T> = std::result::Result<T, Error>;