use thiserror::Error;
pub type BoxError = Box<dyn std::error::Error + Send + Sync>;
#[derive(Debug, Error)]
pub enum StoreError {
#[error("failed to initialize store: {0}")]
Initialization(#[source] BoxError),
#[error("failed to persist message (seq_num: {sequence_number})")]
PersistMessage {
sequence_number: u64,
#[source]
source: BoxError,
},
#[error("failed to retrieve messages (range: {begin}..={end})")]
RetrieveMessages {
begin: usize,
end: usize,
#[source]
source: BoxError,
},
#[error("failed to update sequence number")]
UpdateSequenceNumber(#[source] BoxError),
#[error("failed to reset store")]
Reset(#[source] BoxError),
#[error("failed to cleanup old sequences")]
Cleanup(#[source] BoxError),
}
pub type Result<T> = std::result::Result<T, StoreError>;