lucet_module/
error.rs

1use thiserror::Error;
2
3/// Module data (de)serialization errors.
4#[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}