yq 0.4.1

Yet another job queue
Documentation
use crate::JobType;
use thiserror::Error;

pub type YqResult<T> = Result<T, YqError>;

#[derive(Error, Debug)]
pub enum YqError {
    #[error("CreateRedisClient")]
    CreateRedisClient(redis::RedisError),
    #[error("GetRedisConn")]
    GetRedisConn(redis::RedisError),
    #[error("Dequeue")]
    Dequeue(redis::RedisError),
    #[error("DequeueAt")]
    DequeueAt(redis::RedisError),
    #[error("Enqueue")]
    Enqueue(redis::RedisError),
    #[error("EnqueueAt")]
    EnqueueAt(redis::RedisError),
    #[error("SerializeJob")]
    SerializeJob(serde_json::Error),
    #[error("DupJobHandler")]
    DupJobType(JobType),
    #[error("JobTypeMissing")]
    JobTypeMissing(JobType),
    #[error("JobTypeMissing")]
    InvalidJobData(String),
    #[error("RunJobError")]
    RunJobError(YqRunJobError),
    #[error("FailJobError")]
    FailJobError(redis::RedisError),
}

#[derive(Debug)]
pub struct YqRunJobError {
    pub job_data: String,
    pub error: String,
}

impl YqRunJobError {
    pub fn new(job_data: String, error: String) -> Self {
        Self { job_data, error }
    }
}