Delete src/plugins/bad-traits.rs
This commit is contained in:
parent
fafa454c24
commit
709e35f929
@ -1,97 +0,0 @@
|
|||||||
//! Трейты для системы плагинов с lock-free архитектурой
|
|
||||||
|
|
||||||
use std::sync::Arc;
|
|
||||||
use serde_json::Value;
|
|
||||||
|
|
||||||
/// Трейт для данных плагина (без Lua окружения)
|
|
||||||
pub trait PluginData: Send + Sync {
|
|
||||||
fn id(&self) -> &str;
|
|
||||||
fn name(&self) -> &str;
|
|
||||||
fn version(&self) -> &str;
|
|
||||||
fn description(&self) -> &str;
|
|
||||||
fn author(&self) -> &str;
|
|
||||||
fn path(&self) -> &str;
|
|
||||||
fn state(&self) -> PluginState;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Состояние плагина
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
|
||||||
pub enum PluginState {
|
|
||||||
Loading,
|
|
||||||
Loaded,
|
|
||||||
Running,
|
|
||||||
Error,
|
|
||||||
Disabled,
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Трейт для обработки событий
|
|
||||||
pub trait EventHandler: Send + Sync {
|
|
||||||
fn handle_event(&self, event: PluginEvent) -> Result<(), String>;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Трейт для хуков
|
|
||||||
pub trait HookHandler: Send + Sync {
|
|
||||||
fn execute_hook(&self, hook_name: &str, data: Value) -> Result<Value, String>;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Событие плагина
|
|
||||||
#[derive(Debug, Clone)]
|
|
||||||
pub struct PluginEvent {
|
|
||||||
pub event_type: EventType,
|
|
||||||
pub data: Value,
|
|
||||||
pub source: String,
|
|
||||||
pub timestamp: u64,
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Тип события
|
|
||||||
#[derive(Debug, Clone)]
|
|
||||||
pub enum EventType {
|
|
||||||
/// Системные события
|
|
||||||
SystemStart,
|
|
||||||
SystemStop,
|
|
||||||
PluginLoaded(String),
|
|
||||||
PluginUnloaded(String),
|
|
||||||
|
|
||||||
/// События базы данных
|
|
||||||
DatabaseOpen,
|
|
||||||
DatabaseClose,
|
|
||||||
TransactionBegin(u64),
|
|
||||||
TransactionCommit(u64),
|
|
||||||
TransactionRollback(u64),
|
|
||||||
|
|
||||||
/// Пользовательские события
|
|
||||||
Custom(String, String),
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Хук плагина
|
|
||||||
#[derive(Debug, Clone)]
|
|
||||||
pub struct PluginHook {
|
|
||||||
pub name: String,
|
|
||||||
pub function: String,
|
|
||||||
pub priority: u32,
|
|
||||||
pub async_hook: bool,
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Трейт для менеджера плагинов
|
|
||||||
pub trait PluginManagerTrait: Send + Sync {
|
|
||||||
/// Загрузить все плагины
|
|
||||||
fn load_all_plugins(&mut self) -> Result<Vec<Arc<dyn PluginData>>, String>;
|
|
||||||
|
|
||||||
/// Загрузить плагин по пути
|
|
||||||
fn load_plugin(&mut self, path: &str) -> Result<Arc<dyn PluginData>, String>;
|
|
||||||
|
|
||||||
/// Выгрузить плагин
|
|
||||||
fn unload_plugin(&mut self, plugin_id: &str) -> Result<(), String>;
|
|
||||||
|
|
||||||
/// Получить список загруженных плагинов
|
|
||||||
fn list_plugins(&self) -> Vec<Arc<dyn PluginData>>;
|
|
||||||
|
|
||||||
/// Получить плагин по ID
|
|
||||||
fn get_plugin(&self, plugin_id: &str) -> Option<Arc<dyn PluginData>>;
|
|
||||||
|
|
||||||
/// Отправить событие
|
|
||||||
fn emit_event(&self, event: PluginEvent) -> Result<(), String>;
|
|
||||||
|
|
||||||
/// Выполнить хук
|
|
||||||
fn execute_hook(&self, hook_name: &str, data: Value) -> Result<Value, String>;
|
|
||||||
}
|
|
||||||
Loading…
x
Reference in New Issue
Block a user