roadster 0.8.1

A "Batteries Included" web framework for rust designed to get you moving fast.
Documentation
use crate::error::Error;

#[derive(Debug, Error)]
#[non_exhaustive]
pub enum SidekiqError {
    #[error(transparent)]
    Sidekiq(#[from] sidekiq::Error),

    #[error(transparent)]
    Redis(#[from] sidekiq::RedisError),

    #[error(transparent)]
    Bb8(#[from] bb8::RunError<sidekiq::RedisError>),

    #[error("{0}")]
    Message(String),

    #[error(transparent)]
    Other(#[from] Box<dyn std::error::Error + Send + Sync>),
}

impl From<sidekiq::Error> for Error {
    fn from(value: sidekiq::Error) -> Self {
        Self::Sidekiq(SidekiqError::from(value))
    }
}

impl From<sidekiq::RedisError> for Error {
    fn from(value: sidekiq::RedisError) -> Self {
        Self::Sidekiq(SidekiqError::from(value))
    }
}

impl From<bb8::RunError<sidekiq::RedisError>> for Error {
    fn from(value: bb8::RunError<sidekiq::RedisError>) -> Self {
        Self::Sidekiq(SidekiqError::from(value))
    }
}

impl From<Error> for sidekiq::Error {
    fn from(value: Error) -> Self {
        match value {
            Error::Sidekiq(err) => err.into(),
            _ => sidekiq::Error::Any(Box::new(value)),
        }
    }
}

impl From<SidekiqError> for sidekiq::Error {
    fn from(value: SidekiqError) -> Self {
        match value {
            SidekiqError::Sidekiq(err) => err,
            _ => sidekiq::Error::Any(Box::new(value)),
        }
    }
}