oxidite_queue/
lib.rs

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 mod postgres;
11pub use crate::postgres::PostgresBackend;
12pub use worker::Worker;
13pub use stats::{QueueStats, StatsTracker};
14
15use thiserror::Error;
16
17#[derive(Error, Debug)]
18pub enum QueueError {
19    #[error("Serialization error: {0}")]
20    SerializationError(#[from] serde_json::Error),
21    
22    #[error("Job failed: {0}")]
23    JobFailed(String),
24    
25    #[error("Queue full")]
26    QueueFull,
27    
28    #[error("Backend error: {0}")]
29    BackendError(String),
30}
31
32pub type Result<T> = std::result::Result<T, QueueError>;