1use thiserror::Error;
2
3#[derive(Debug, Error)]
4#[error("log error")]
5pub enum LogError {
6 #[error("IO error: {0}")]
7 IO(#[from] std::io::Error),
8 #[error("S3 error: {0}")]
9 S3Error(fusio::Error),
10 #[error("encode error: {message}")]
11 Encode { message: String },
12 #[error("decode error: {message}")]
13 Decode { message: String },
14 #[error("recover error: bad data")]
15 BadData,
16 #[error("recover error: checksum does not match")]
17 Checksum,
18}
19
20impl From<fusio::Error> for LogError {
21 fn from(err: fusio::Error) -> Self {
22 match err {
23 fusio::Error::Io(error) => LogError::IO(error),
24 fusio::Error::S3Error(_) => LogError::S3Error(err),
25 _ => todo!(),
26 }
27 }
28}