capp-queue 0.7.2

Common things i use to build Rust CLI tools for web crawlers.
Documentation
pub mod backend;
pub mod dispatch;
pub mod queue;
pub mod serializers;
pub mod task;

#[cfg(feature = "fjall")]
pub use crate::backend::FjallRoundRobinTaskQueue;
#[cfg(feature = "fjall")]
pub use crate::backend::FjallTaskQueue;
pub use crate::backend::InMemoryTaskQueue;
pub use crate::dispatch::{
    ProducerError, ProducerHandle, ProducerMsg, WorkerResult,
};
pub use crate::queue::{AbstractTaskQueue, HasTagKey, TaskQueue};
pub use crate::serializers::{JsonSerializer, TaskSerializer};
pub use crate::task::{Task, TaskId, TaskStatus};

use thiserror::Error;

#[derive(Error, Debug)]
pub enum TaskQueueError {
    #[error("Queue error: {0}")]
    QueueError(String),
    #[error("Ser/De error: {0}")]
    SerdeError(String),
    #[error("Serialization error: {0}")]
    Serialization(String),
    #[error("Deserialization error: {0}")]
    Deserialization(String),
    #[error("Task not found: {0}")]
    TaskNotFound(TaskId),
    #[error("Queue is empty")]
    QueueEmpty,
    #[cfg(feature = "fjall")]
    #[error("Fjall error")]
    FjallError(#[from] fjall::Error),
}