Something went wrong. Try again.
QuickDID is a high-performance AT Protocol identity resolution service written in Rust. It provides handle-to-DID resolution with Redis-back
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677//! Queue operation error types.//!//! This module defines the error types that can occur during queue operations,//! including push failures, serialization issues, and backend-specific errors.
use thiserror::Error;
/// Queue operation errors.////// These errors represent various failure modes that can occur when working/// with queue adapters, from connection issues to serialization problems.#[derive(Error, Debug)]pub enum QueueError { /// Failed to push an item to the queue. #[error("error-quickdid-queue-1 Failed to push to queue: {0}")] PushFailed(String),
/// The queue is full and cannot accept new items. #[error("error-quickdid-queue-2 Queue is full")] QueueFull,
/// The queue has been closed and is no longer accepting items. #[error("error-quickdid-queue-3 Queue is closed")] QueueClosed,
/// Redis connection failed. #[error("error-quickdid-queue-4 Redis connection failed: {0}")] RedisConnectionFailed(String),
/// Redis operation failed. #[error("error-quickdid-queue-5 Redis operation failed: {operation}: {details}")] RedisOperationFailed { /// The Redis operation that failed operation: String, /// Details about the failure details: String, },
/// Failed to serialize an item for storage. #[error("error-quickdid-queue-6 Serialization failed: {0}")] SerializationFailed(String),
/// Failed to deserialize an item from storage. #[error("error-quickdid-queue-7 Deserialization failed: {0}")] DeserializationFailed(String),
/// Item not found in worker queue during acknowledgment. #[error("error-quickdid-queue-8 Item not found in worker queue during acknowledgment")] AckItemNotFound,}
/// Result type alias for queue operations.pub type Result<T> = std::result::Result<T, QueueError>;
#[cfg(test)]mod tests { use super::*;
#[test] fn test_error_messages() { let err = QueueError::PushFailed("test failure".to_string()); assert!(err.to_string().contains("error-quickdid-queue-1")); assert!(err.to_string().contains("test failure"));
let err = QueueError::QueueFull; assert_eq!(err.to_string(), "error-quickdid-queue-2 Queue is full");
let err = QueueError::RedisOperationFailed { operation: "LPUSH".to_string(), details: "connection timeout".to_string(), }; assert!(err.to_string().contains("error-quickdid-queue-5")); assert!(err.to_string().contains("LPUSH")); assert!(err.to_string().contains("connection timeout")); }}