Skip to main content

queue_core/
error.rs

1use thiserror::Error;
2
3/// Result alias for queue operations.
4pub type Result<T> = std::result::Result<T, QueueError>;
5
6/// Why a queue operation failed.
7#[derive(Debug, Error)]
8#[non_exhaustive]
9pub enum QueueError {
10    /// The queue is closed (all producers dropped, or the broker is gone).
11    #[error("the queue is closed")]
12    Closed,
13
14    /// Publishing an item failed.
15    #[error("publish failed: {0}")]
16    Publish(String),
17
18    /// Receiving from the queue failed.
19    #[error("consume failed: {0}")]
20    Consume(String),
21
22    /// Acknowledging or returning a delivery failed.
23    #[error("acknowledgement failed: {0}")]
24    Ack(String),
25}