1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- use thiserror::Error as ThisError;
- pub type Result<T, E = Error> = std::result::Result<T, E>;
- #[derive(ThisError, Debug)]
- pub enum Error {
- /// Used when errors need to propogate but are too unique to be typed
- #[error("{0}")]
- Unique(String),
- #[error("I/O Error: {0}")]
- IO(#[from] std::io::Error),
- #[error("Format Error: {0}")]
- FormatError(#[from] std::fmt::Error),
- #[error("Format failed: {0}")]
- ParseError(String),
- #[error("Runtime Error: {0}")]
- RuntimeError(String),
- #[error("Failed to write error")]
- FailedToWrite,
- #[error("Build Failed: {0}")]
- BuildFailed(String),
- #[error("Cargo Error: {0}")]
- CargoError(String),
- #[error("Couldn't retrieve cargo metadata")]
- CargoMetadata(#[source] cargo_metadata::Error),
- #[error("{0}")]
- CustomError(String),
- #[error("Invalid proxy URL: {0}")]
- InvalidProxy(#[from] hyper::http::uri::InvalidUri),
- #[error("Failed to establish proxy: {0}")]
- ProxySetupError(String),
- #[error("Error proxying request: {0}")]
- ProxyRequestError(hyper::Error),
- #[error(transparent)]
- Other(#[from] anyhow::Error),
- }
- impl From<&str> for Error {
- fn from(s: &str) -> Self {
- Error::Unique(s.to_string())
- }
- }
- impl From<String> for Error {
- fn from(s: String) -> Self {
- Error::Unique(s)
- }
- }
- impl From<html_parser::Error> for Error {
- fn from(e: html_parser::Error) -> Self {
- Self::ParseError(e.to_string())
- }
- }
- impl From<hyper::Error> for Error {
- fn from(e: hyper::Error) -> Self {
- Self::RuntimeError(e.to_string())
- }
- }
- #[macro_export]
- macro_rules! custom_error {
- ($msg:literal $(,)?) => {
- Err(Error::CustomError(format!($msg)))
- };
- ($err:expr $(,)?) => {
- Err(Error::from($err))
- };
- ($fmt:expr, $($arg:tt)*) => {
- Err(Error::CustomError(format!($fmt, $($arg)*)))
- };
- }
|