hitbox_backend/error.rs
1//! Error types for backend operations.
2
3use crate::compressor::CompressionError;
4use crate::format::FormatError;
5use thiserror::Error;
6
7/// Error type for backend operations.
8///
9/// This enum categorizes errors that can occur during cache backend interactions
10/// into distinct groups for appropriate handling.
11#[derive(Debug, Error)]
12pub enum BackendError {
13 /// Internal backend error, state or computation error.
14 ///
15 /// Any error not related to network interaction.
16 #[error(transparent)]
17 InternalError(Box<dyn std::error::Error + Send>),
18
19 /// Network interaction error.
20 ///
21 /// Errors occurring during communication with remote backends (e.g., Redis).
22 #[error(transparent)]
23 ConnectionError(Box<dyn std::error::Error + Send>),
24
25 /// Serialization or deserialization error.
26 #[error(transparent)]
27 FormatError(#[from] FormatError),
28
29 /// Compression or decompression error.
30 #[error(transparent)]
31 CompressionError(#[from] CompressionError),
32}