1use std::sync::PoisonError;
2
3use finance::error::FinanceError;
4use thiserror::Error;
5use wasmtime::Error as WASMError;
6
7#[derive(Debug, Error)]
8pub enum HookError {
9 #[error("WASM: {0}")]
10 WASM(#[from] WASMError),
11 #[error("WASM memory access error")]
12 WASMMem,
13 #[error("Mutex lock error")]
14 Lock,
15 #[error("Finance error: {0}")]
16 Finance(#[from] FinanceError),
17 #[error("Parse error: {0}")]
18 Parse(String),
19 #[error("Script error: {0}")]
20 Script(String),
21}
22
23impl<T> From<PoisonError<T>> for HookError {
24 fn from(err: PoisonError<T>) -> Self {
25 tracing::error!("Mutex lock error: {err}");
26 Self::Lock
27 }
28}