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}