1use serde::{Deserialize, Serialize};
2
3pub mod dependency;
4pub mod manager;
5#[allow(clippy::module_inception)]
6pub mod plugin;
7
8pub use plugin::*;
9pub use dependency::DependencyManager;
10pub use manager::{PluginManager, PluginManagerBuilder};
11#[derive(Debug, Clone, Serialize, Deserialize)]
15pub struct PluginMetadata {
16 pub name: String, pub version: String, pub description: String, pub author: String, pub dependencies: Vec<String>, pub conflicts: Vec<String>, pub state_fields: Vec<String>, pub tags: Vec<String>, }
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
28pub struct PluginConfig {
29 pub enabled: bool, pub priority: i32, pub settings: std::collections::HashMap<String, serde_json::Value>, }