simple_job_queue/
error.rs

1use std::{error::Error, fmt::Display};
2
3use redis::RedisError;
4
5#[derive(Debug)]
6pub struct JobError;
7
8impl Display for JobError {
9    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10        Display::fmt("An error occurred while processing the job", f)
11    }
12}
13
14impl Error for JobError {}
15
16#[derive(Debug)]
17pub enum JobQueueError {
18    MalformedJob,
19    #[cfg(feature = "redis")]
20    RedisError(RedisError),
21}
22
23impl Display for JobQueueError {
24    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
25        match self {
26            JobQueueError::MalformedJob => write!(f, "Malformed job"),
27            #[cfg(feature = "redis")]
28            JobQueueError::RedisError(error) => error.fmt(f),
29        }
30    }
31}
32
33impl Error for JobQueueError {}
34
35#[cfg(feature = "redis")]
36impl From<RedisError> for JobQueueError {
37    fn from(value: RedisError) -> Self {
38        Self::RedisError(value)
39    }
40}