use super::messages;
#[derive(Debug, thiserror::Error)]
pub enum CommonError {
#[error("{}", messages::CACHE_LOCK_ERROR)]
CacheLock,
#[error("{prefix}: {detail}", prefix = messages::SERIALIZATION_ERROR_PREFIX, detail = .0)]
Serialization(&'static str),
#[error("{prefix}: {detail}", prefix = messages::DESERIALIZATION_ERROR_PREFIX, detail = .0)]
Deserialization(&'static str),
#[error("{prefix}: {detail}", prefix = messages::IO_ERROR_PREFIX, detail = .0)]
Io(#[from] std::io::Error),
#[error("{prefix}: {detail}", prefix = messages::UNSUPPORTED_FILE_TYPE_PREFIX, detail = .0)]
UnsupportedFileType(&'static str),
#[error("{}", messages::DATA_NOT_FOUND)]
DataNotFound,
#[error("{}", messages::UNABLE_TO_FRESH_DATA)]
UnableToFreshData,
#[error("{}", messages::STALE_INTERNAL_NONE)]
StaleInternalNone,
#[error("{}", messages::TIMEOUT_EXCEEDED)]
Timeout,
#[error("{}", messages::FAILED_TO_GET_FILENAME)]
FilenameError,
#[error("{}", messages::INVALID_FILENAME_ENCODING)]
InvalidFilenameEncoding,
#[error("{}", messages::MISSING_TIMESTAMP_SEPARATOR)]
MissingTimestampSeparator,
#[error("{}", messages::MISSING_FILE_EXTENSION)]
MissingFileExtension,
#[error("{}", messages::FAILED_TO_PARSE_TIMESTAMP)]
TimestampParseError,
}