2021-08-06 17:58:40 +00:00
|
|
|
#![allow(clippy::nonstandard_macro_braces)]
|
2022-07-04 12:35:17 +00:00
|
|
|
use golgi::error::GolgiError;
|
2021-12-17 21:23:47 +00:00
|
|
|
use peach_lib::error::PeachError;
|
2021-08-06 17:58:40 +00:00
|
|
|
pub use snafu::ResultExt;
|
|
|
|
use snafu::Snafu;
|
|
|
|
|
|
|
|
#[derive(Debug, Snafu)]
|
|
|
|
#[allow(clippy::enum_variant_names)]
|
|
|
|
#[snafu(visibility(pub(crate)))]
|
|
|
|
pub enum PeachConfigError {
|
|
|
|
#[snafu(display("Command not found: \"{}\"", command))]
|
|
|
|
CmdIoError {
|
|
|
|
source: std::io::Error,
|
|
|
|
command: String,
|
|
|
|
},
|
|
|
|
#[snafu(display("\"{}\" returned an error. {}", command, msg))]
|
|
|
|
CmdError { msg: String, command: String },
|
|
|
|
#[snafu(display("Command could not parse stdout: \"{}\"", command))]
|
|
|
|
CmdParseOutputError {
|
|
|
|
source: std::str::Utf8Error,
|
|
|
|
command: String,
|
|
|
|
},
|
|
|
|
#[snafu(display("Failed to write file: {}", file))]
|
|
|
|
FileWriteError {
|
|
|
|
file: String,
|
|
|
|
source: std::io::Error,
|
|
|
|
},
|
|
|
|
#[snafu(display("Failed to read file: {}", file))]
|
|
|
|
FileReadError {
|
|
|
|
file: String,
|
|
|
|
source: std::io::Error,
|
|
|
|
},
|
|
|
|
#[snafu(display("Error serializing json: {}", source))]
|
|
|
|
SerdeError { source: serde_json::Error },
|
2021-12-17 21:23:47 +00:00
|
|
|
#[snafu(display("Error changing password: {}", source))]
|
|
|
|
ChangePasswordError { source: PeachError },
|
|
|
|
#[snafu(display("Entered passwords did not match. Please try again."))]
|
|
|
|
InvalidPassword,
|
2022-07-04 12:35:17 +00:00
|
|
|
#[snafu(display("Error in peach lib: {}", source))]
|
|
|
|
PeachLibError { source: PeachError },
|
|
|
|
#[snafu(display("Error in golgi: {}", source))]
|
|
|
|
Golgi { source: GolgiError },
|
2022-07-05 13:56:52 +00:00
|
|
|
#[snafu(display("{}", message))]
|
|
|
|
CmdInputError { message: String },
|
2021-08-06 17:58:40 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
impl From<std::io::Error> for PeachConfigError {
|
|
|
|
fn from(err: std::io::Error) -> PeachConfigError {
|
|
|
|
PeachConfigError::CmdIoError {
|
|
|
|
source: err,
|
|
|
|
command: "unknown".to_string(),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl From<serde_json::Error> for PeachConfigError {
|
|
|
|
fn from(err: serde_json::Error) -> PeachConfigError {
|
|
|
|
PeachConfigError::SerdeError { source: err }
|
|
|
|
}
|
|
|
|
}
|
2022-07-04 12:35:17 +00:00
|
|
|
|
|
|
|
impl From<PeachError> for PeachConfigError {
|
|
|
|
fn from(err: PeachError) -> PeachConfigError {
|
|
|
|
PeachConfigError::PeachLibError { source: err }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl From<GolgiError> for PeachConfigError {
|
|
|
|
fn from(err: GolgiError) -> PeachConfigError {
|
|
|
|
PeachConfigError::Golgi { source: err }
|
|
|
|
}
|
|
|
|
}
|