1use thiserror::Error;
4
5pub type BoxError = Box<dyn std::error::Error + Send + Sync>;
7
8#[derive(Debug, Error)]
10pub enum StoreError {
11 #[error("failed to initialize store: {0}")]
13 Initialization(#[source] BoxError),
14
15 #[error("failed to persist message (seq_num: {sequence_number})")]
17 PersistMessage {
18 sequence_number: u64,
19 #[source]
20 source: BoxError,
21 },
22
23 #[error("failed to retrieve messages (range: {begin}..={end})")]
25 RetrieveMessages {
26 begin: usize,
27 end: usize,
28 #[source]
29 source: BoxError,
30 },
31
32 #[error("failed to update sequence number")]
34 UpdateSequenceNumber(#[source] BoxError),
35
36 #[error("failed to reset store")]
38 Reset(#[source] BoxError),
39
40 #[error("failed to cleanup old sequences")]
42 Cleanup(#[source] BoxError),
43}
44
45pub type Result<T> = std::result::Result<T, StoreError>;