tidy-browser 0.3.4

Tidy up browser information.
Documentation
use std::path::PathBuf;

#[cfg(target_os = "macos")]
use decrypt_cookies::safari::SafariError;
use decrypt_cookies::{
    chromium::{ChromiumError, builder::ChromiumBuilderError},
    firefox::{FirefoxError, builder::FirefoxBuilderError},
};
use snafu::{Location, Snafu};

#[derive(Snafu)]
#[derive(Debug)]
#[snafu(visibility(pub))]
pub enum Error {
    #[snafu(display("{source}\n@:{location}"))]
    Json {
        source: serde_json::Error,
        #[snafu(implicit)]
        location: Location,
    },
    #[snafu(display("{source}\n@:{location}"))]
    BinaryCookies {
        source: binary_cookies::error::ParseError,
        #[snafu(implicit)]
        location: Location,
    },
    #[snafu(display("Build Chromium: {source}\n@:{location}"))]
    ChromiumBuilder {
        source: ChromiumBuilderError,
        #[snafu(implicit)]
        location: Location,
    },
    #[snafu(display("Chromium: {source}\n@:{location}"))]
    Chromium {
        source: ChromiumError,
        #[snafu(implicit)]
        location: Location,
    },
    #[snafu(display("Build Firefox: {source}\n@:{location}"))]
    FirefoxBuilder {
        source: FirefoxBuilderError,
        #[snafu(implicit)]
        location: Location,
    },
    #[snafu(display("Firefox: {source}\n@:{location}"))]
    Firefox {
        source: FirefoxError,
        #[snafu(implicit)]
        location: Location,
    },
    #[cfg(target_os = "macos")]
    #[snafu(display("Firefox: {source}\n@:{location}"))]
    Safari {
        source: SafariError,
        #[snafu(implicit)]
        location: Location,
    },
    #[snafu(display("{source} path: {}\n@:{location}", path.display()))]
    Io {
        source: std::io::Error,
        path: PathBuf,
        #[snafu(implicit)]
        location: Location,
    },
    #[snafu(display("{source}\n@:{location}"))]
    TokioTask {
        source: tokio::task::JoinError,
        #[snafu(implicit)]
        location: Location,
    },
}

pub type Result<T> = std::result::Result<T, Error>;