1use thiserror::Error;
4
5pub type PluginResult<T> = Result<T, PluginError>;
7
8#[derive(Error, Debug)]
10pub enum PluginError {
11 #[error("plugin not found: {path}")]
12 NotFound { path: String },
13
14 #[error("failed to load plugin: {0}")]
15 LoadError(String),
16
17 #[error("plugin execution failed: {0}")]
18 ExecutionError(String),
19
20 #[error("hook '{hook}' not found in plugin")]
21 HookNotFound { hook: String },
22
23 #[error("permission denied: {0}")]
24 PermissionDenied(String),
25
26 #[error("invalid plugin manifest: {0}")]
27 InvalidManifest(String),
28
29 #[error("serialization error: {0}")]
30 Serialization(#[from] serde_json::Error),
31}