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