#[derive(Debug, Clone, PartialEq, Eq)] pub enum ReftableError { General(String), Io, Format, NotExist, Lock, Api, Zlib, EmptyTable, Refname, EntryTooBig, Outdated, OutOfMemory, } impl std::fmt::Display for ReftableError { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { ReftableError::General(msg) => write!(f, "general error: {}", msg), ReftableError::Io => write!(f, "I/O error"), ReftableError::Format => write!(f, "corrupt reftable file"), ReftableError::NotExist => write!(f, "file does not exist"), ReftableError::Lock => write!(f, "data is locked"), ReftableError::Api => write!(f, "misuse of the reftable API"), ReftableError::Zlib => write!(f, "zlib failure"), ReftableError::EmptyTable => write!(f, "wrote empty table"), ReftableError::Refname => write!(f, "invalid refname"), ReftableError::EntryTooBig => write!(f, "entry too large"), ReftableError::Outdated => write!(f, "data concurrently modified"), ReftableError::OutOfMemory => write!(f, "out of memory"), } } }