meilisearch/dump/src/error.rs

37 lines
1.2 KiB
Rust
Raw Normal View History

2022-10-13 21:02:59 +08:00
use meilisearch_types::error::{Code, ErrorCode};
use thiserror::Error;
#[derive(Debug, Error)]
pub enum Error {
2022-10-03 22:12:01 +08:00
#[error("The version 1 of the dumps is not supported anymore. You can re-export your dump from a version between 0.21 and 0.24, or start fresh from a version 0.25 onwards.")]
DumpV1Unsupported,
2022-10-10 20:32:11 +08:00
#[error("Bad index name.")]
2022-10-03 22:12:01 +08:00
BadIndexName,
2022-10-10 20:32:11 +08:00
#[error("Malformed task.")]
MalformedTask,
2022-10-03 22:12:01 +08:00
#[error(transparent)]
Io(#[from] std::io::Error),
#[error(transparent)]
Serde(#[from] serde_json::Error),
2022-10-04 00:50:06 +08:00
#[error(transparent)]
Uuid(#[from] uuid::Error),
}
2022-10-13 21:02:59 +08:00
impl ErrorCode for Error {
fn error_code(&self) -> Code {
match self {
// Are these three really Internal errors?
// TODO look at that later.
2022-10-13 21:02:59 +08:00
Error::Io(_) => Code::Internal,
Error::Serde(_) => Code::Internal,
Error::Uuid(_) => Code::Internal,
// all these errors should never be raised when creating a dump, thus no error code should be associated.
Error::DumpV1Unsupported => Code::Internal,
Error::BadIndexName => Code::Internal,
Error::MalformedTask => Code::Internal,
}
}
}