#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum EventLogError {
#[error("event log journal error: {0}")]
Journal(#[from] commonware_storage::journal::Error),
#[error("event log checkpoint error: {0}")]
Checkpoint(#[from] commonware_storage::metadata::Error),
#[error("event log integrity error: {0}")]
Integrity(#[from] crate::IntegrityError),
#[error("event log reclaim refused: the journal still holds {events} event(s); reset it first")]
ReclaimNotEmpty {
events: u64,
},
#[error("event log erasure incomplete: durable storage survived the removal")]
EraseIncomplete,
#[error("event log repair replacement error: {0}")]
RepairReplacement(String),
#[error(
"repair refused: a trusted signed root contradicts the content it covers, so re-rooting \
would sign the contradiction — preserve this partition and investigate (see \
docs/operations/eventlog-disaster-recovery.md)"
)]
RepairRefused,
}