Skip to main content

scripting/
error.rs

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}