use thiserror::Error;
#[derive(Debug, Error, Clone, PartialEq, Eq)]
#[non_exhaustive]
pub enum BitmapError {
#[error("bitmap file is too small")]
TooSmall,
#[error("bitmap header is invalid")]
InvalidHeader,
#[error("bitmap index missing required full-dag flag")]
MissingFullDag,
#[error("bitmap file checksum mismatch")]
FileChecksumMismatch,
#[error("bitmap checksum does not match pack or MIDX")]
PackChecksumMismatch,
#[error("bitmap index is corrupt")]
Corrupt,
#[error("bitmap EWAH data is invalid")]
InvalidEwah,
#[error("bitmap I/O error: {0}")]
Io(String),
}
impl BitmapError {
pub(crate) fn io(err: std::io::Error) -> Self {
Self::Io(err.to_string())
}
}