1use std::io::Error as IoError;
2
3use crate::options::PluginOption;
4
5pub type DevrcPluginResult<T> = Result<T, DevrcPluginError>;
6
7#[derive(Debug)]
8pub enum DevrcPluginError {
9 NotFound(String),
10 LoadingError(libloading::Error),
11 Code { code: i32 },
12 Signal,
13 IoError(IoError),
14 AnyhowError(anyhow::Error),
15 InvalidOption(String, PluginOption),
16}
17
18impl From<libloading::Error> for DevrcPluginError {
19 fn from(value: libloading::Error) -> Self {
20 DevrcPluginError::LoadingError(value)
21 }
22}
23
24impl From<anyhow::Error> for DevrcPluginError {
25 fn from(error: anyhow::Error) -> Self {
26 DevrcPluginError::AnyhowError(error)
27 }
28}