Skip to main content

pro_plugin/
error.rs

1//! Plugin error types
2
3use thiserror::Error;
4
5/// Result type for plugin operations
6pub type PluginResult<T> = Result<T, PluginError>;
7
8/// Plugin-specific errors
9#[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}