1use thiserror::Error;
2
3#[derive(Debug, Error)]
5pub enum Error {
6 #[error("Deserialization error")]
7 DeserializationError(#[source] bincode::Error),
8 #[error("I/O error")]
9 IOError(#[source] std::io::Error),
10 #[error("Sparse data contained a page with length other than 4096")]
11 IncorrectPageSize,
12 #[error("Module signature error")]
13 ModuleSignatureError(#[source] minisign::PError),
14 #[error("Parse error at {key}::{value:?}")]
15 ParseError { key: String, value: String },
16 #[error("Parse json error")]
17 ParseJsonError(#[from] serde_json::error::Error),
18 #[error("Top-level json must be an object")]
19 ParseJsonObjError,
20 #[error("Parse string error")]
21 ParseStringError(#[from] std::io::Error),
22 #[error("Cannot re-bind {key} from {binding} to {attempt}")]
23 RebindError {
24 key: String,
25 binding: String,
26 attempt: String,
27 },
28 #[error("Serialization error")]
29 SerializationError(#[source] bincode::Error),
30 #[error("Unknown module for symbol `{module}::{symbol}")]
31 UnknownModule { module: String, symbol: String },
32 #[error("Unknown symbol `{module}::{symbol}`")]
33 UnknownSymbol { module: String, symbol: String },
34}