apalis-pgmq 0.1.0-rc.4

Background task processing for rust using apalis and pgmq
Documentation
//! Custom errors types for apalis-pgmq
use apalis_core::error::BoxDynError;
use thiserror::Error;
use url::ParseError;

#[derive(Error, Debug)]
pub enum PgmqError {
    /// a codec parsing error
    #[error("codec parsing error {0}")]
    ParsingError(#[from] BoxDynError),

    /// a url parsing error
    #[error("url parsing error {0}")]
    UrlParsingError(#[from] ParseError),

    /// a database error
    #[error("database error {0}")]
    DatabaseError(#[from] sqlx::Error),

    /// a queue name error
    /// queue names must be alphanumeric and start with a letter
    #[error("invalid queue name: '{name}'")]
    InvalidQueueName { name: String },

    /// a general error for installation operations
    #[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)
    }
}