mf_state/plugin/
mod.rs

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/// 插件元数据
12/// 插件的元数据,用于描述插件的名称、版本、描述、作者、依赖、冲突、状态字段、标签等信息
13/// dependencies 主要是 事务处理的依赖 B插件依赖于A插件 产生的事务
14#[derive(Debug, Clone, Serialize, Deserialize)]
15pub struct PluginMetadata {
16    pub name: String,              //插件名称
17    pub version: String,           //插件版本
18    pub description: String,       //插件描述
19    pub author: String,            //插件作者
20    pub dependencies: Vec<String>, //插件依赖
21    pub conflicts: Vec<String>,    //插件冲突
22    pub state_fields: Vec<String>, //插件状态字段
23    pub tags: Vec<String>,         //插件标签
24}
25
26/// 插件配置
27#[derive(Debug, Clone, Serialize, Deserialize)]
28pub struct PluginConfig {
29    pub enabled: bool, //插件是否启用
30    pub priority: i32, //插件优先级
31    pub settings: std::collections::HashMap<String, serde_json::Value>, //插件配置
32}