1pub mod backend;
2pub mod dispatch;
3pub mod queue;
4pub mod serializers;
5pub mod task;
6
7#[cfg(feature = "fjall")]
8pub use crate::backend::FjallRoundRobinTaskQueue;
9#[cfg(feature = "fjall")]
10pub use crate::backend::FjallTaskQueue;
11pub use crate::backend::InMemoryTaskQueue;
12pub use crate::dispatch::{
13 ProducerError, ProducerHandle, ProducerMsg, WorkerResult,
14};
15pub use crate::queue::{AbstractTaskQueue, HasTagKey, TaskQueue};
16pub use crate::serializers::{JsonSerializer, TaskSerializer};
17pub use crate::task::{Task, TaskId, TaskStatus};
18
19use thiserror::Error;
20
21#[derive(Error, Debug)]
22pub enum TaskQueueError {
23 #[error("Queue error: {0}")]
24 QueueError(String),
25 #[error("Ser/De error: {0}")]
26 SerdeError(String),
27 #[error("Serialization error: {0}")]
28 Serialization(String),
29 #[error("Deserialization error: {0}")]
30 Deserialization(String),
31 #[error("Task not found: {0}")]
32 TaskNotFound(TaskId),
33 #[error("Queue is empty")]
34 QueueEmpty,
35 #[cfg(feature = "fjall")]
36 #[error("Fjall error")]
37 FjallError(#[from] fjall::Error),
38}