use apalis_core::error::BoxDynError;
use thiserror::Error;
use url::ParseError;
#[derive(Error, Debug)]
pub enum PgmqError {
#[error("codec parsing error {0}")]
ParsingError(#[from] BoxDynError),
#[error("url parsing error {0}")]
UrlParsingError(#[from] ParseError),
#[error("database error {0}")]
DatabaseError(#[from] sqlx::Error),
#[error("invalid queue name: '{name}'")]
InvalidQueueName { name: String },
#[error("installation error: {0}")]
InstallationError(String),
}
impl From<Box<dyn std::error::Error>> for PgmqError {
fn from(err: Box<dyn std::error::Error>) -> Self {
PgmqError::InstallationError(err.to_string())
}
}
impl From<String> for PgmqError {
fn from(err: String) -> Self {
PgmqError::InstallationError(err)
}
}