//! Error types for the plugin system. use thiserror::Error; /// Errors that can occur when loading or running device plugins. #[derive(Error, Debug)] pub enum PluginError { /// TOML manifest could not be parsed. #[error("manifest parse error: {0}")] ManifestParse(String), /// Manifest is missing a required field. #[error("manifest missing field: {0}")] ManifestMissing(String), /// Manifest contains an invalid value. #[error("manifest invalid value: {0}")] ManifestInvalid(String), /// Rhai script compilation error. #[error("script compile error: {0}")] ScriptCompile(String), /// Rhai script runtime error. #[error("script runtime error: {0}")] ScriptRuntime(String), /// I/O error loading plugin files. #[error("plugin I/O error: {0}")] Io(#[from] std::io::Error), }