use thiserror::Error as ThisError;
#[derive(Debug, ThisError)]
pub enum Error {
#[error("IO error: `{0}`")]
IoError(#[from] std::io::Error),
#[error("TOML parsing error: `{0}`")]
TomlError(#[from] toml::de::Error),
#[error("Request error: `{0}`")]
RequestError(#[from] Box<ureq::Error>),
#[error("Upload error: `{0}`")]
UploadError(String),
#[error("No rustypaste server address is given.")]
NoServerAddressError,
#[error("Multipart IO error: `{0}`")]
MultipartIOError(#[from] multipart::client::lazy::LazyError<'static, std::io::Error>),
#[error("URL parsing error: `{0}`")]
UrlParseError(#[from] url::ParseError),
#[error("Template parsing error: `{0}`")]
TemplateParseError(#[from] indicatif::style::TemplateError),
}
pub type Result<T> = std::result::Result<T, Error>;