1pub mod job;
2pub mod queue;
3pub mod worker;
4pub mod stats;
5
6pub use job::{Job, JobStatus, JobResult};
7pub use queue::{Queue, QueueBackend, MemoryBackend};
8pub mod redis;
9pub use crate::redis::RedisBackend;
10pub use worker::Worker;
11pub use stats::{QueueStats, StatsTracker};
12
13use thiserror::Error;
14
15#[derive(Error, Debug)]
16pub enum QueueError {
17 #[error("Serialization error: {0}")]
18 SerializationError(#[from] serde_json::Error),
19
20 #[error("Job failed: {0}")]
21 JobFailed(String),
22
23 #[error("Queue full")]
24 QueueFull,
25
26 #[error("Backend error: {0}")]
27 BackendError(String),
28}
29
30pub type Result<T> = std::result::Result<T, QueueError>;