Skip to main content

capp_queue/
lib.rs

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}