use thiserror::Error;
#[derive(Error, Debug, Clone)]
pub enum Error {
#[error("Usage: tricoder <target.com>")]
CliUsage,
#[error("Reqwest: {0}")]
Reqwest(String),
#[error("tokio join error: {0}")]
TokioJoinError(String),
#[error("{0}: Invalid HTTP response")]
InvalidHttpResponse(String),
#[error("{0} is not a valid output format. Valid values are [text, json].")]
InvalidOutputFormat(String),
#[error("Error serializing to JSON: {0}")]
SerializingJson(String),
}
impl std::convert::From<reqwest::Error> for Error {
fn from(err: reqwest::Error) -> Self {
Error::Reqwest(err.to_string())
}
}
impl std::convert::From<tokio::task::JoinError> for Error {
fn from(err: tokio::task::JoinError) -> Self {
Error::TokioJoinError(err.to_string())
}
}
impl std::convert::From<serde_json::Error> for Error {
fn from(err: serde_json::Error) -> Self {
Error::SerializingJson(err.to_string())
}
}