Skip to main content

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}