Skip to main content

hotfix_store/
error.rs

1//! Error types for message store operations.
2
3use thiserror::Error;
4
5/// A boxed error type for store errors.
6pub type BoxError = Box<dyn std::error::Error + Send + Sync>;
7
8/// Errors that can occur during message store operations.
9#[derive(Debug, Error)]
10pub enum StoreError {
11    /// Failed to initialize the store.
12    #[error("failed to initialize store: {0}")]
13    Initialization(#[source] BoxError),
14
15    /// Failed to persist a message to the store.
16    #[error("failed to persist message (seq_num: {sequence_number})")]
17    PersistMessage {
18        sequence_number: u64,
19        #[source]
20        source: BoxError,
21    },
22
23    /// Failed to retrieve messages from the store.
24    #[error("failed to retrieve messages (range: {begin}..={end})")]
25    RetrieveMessages {
26        begin: usize,
27        end: usize,
28        #[source]
29        source: BoxError,
30    },
31
32    /// Failed to update a sequence number.
33    #[error("failed to update sequence number")]
34    UpdateSequenceNumber(#[source] BoxError),
35
36    /// Failed to reset the store.
37    #[error("failed to reset store")]
38    Reset(#[source] BoxError),
39
40    /// Failed to cleanup old sequences.
41    #[error("failed to cleanup old sequences")]
42    Cleanup(#[source] BoxError),
43}
44
45/// A specialized Result type for store operations.
46pub type Result<T> = std::result::Result<T, StoreError>;