From de119b9b15840bf43fa6d2929b68c1e7d2fb2dae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B3=D0=BE=D1=80=D0=B8=D0=B9=20=D0=A1?= =?UTF-8?q?=D0=B0=D1=84=D1=80=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 18 Jan 2026 21:54:49 +0000 Subject: [PATCH] Delete src/plugins/bad-chanel.rs --- src/plugins/bad-chanel.rs | 134 -------------------------------------- 1 file changed, 134 deletions(-) delete mode 100644 src/plugins/bad-chanel.rs diff --git a/src/plugins/bad-chanel.rs b/src/plugins/bad-chanel.rs deleted file mode 100644 index 08e3122..0000000 --- a/src/plugins/bad-chanel.rs +++ /dev/null @@ -1,134 +0,0 @@ -//! Каналы для коммуникации между потоками в системе плагинов - -use std::sync::Arc; -use crossbeam::channel::{Sender, Receiver, unbounded, TryRecvError}; -use parking_lot::RwLock; -use serde_json::Value; - -use crate::plugins::traits::{PluginEvent, PluginHook}; - -/// Тип сообщения для канала плагинов -#[derive(Debug, Clone)] -pub enum PluginMessage { - /// Событие для обработки - Event(PluginEvent), - - /// Запрос на выполнение хука - HookRequest { - hook_name: String, - data: Value, - response_sender: Sender, - }, - - /// Запрос на загрузку плагина - LoadPlugin { - path: String, - response_sender: Sender, - }, - - /// Запрос на выгрузку плагина - UnloadPlugin { - plugin_id: String, - response_sender: Sender, - }, - - /// Запрос на получение списка плагинов - ListPlugins { - response_sender: Sender, - }, - - /// Запрос на получение информации о плагине - GetPlugin { - plugin_id: String, - response_sender: Sender, - }, - - /// Команда остановки - Shutdown, -} - -/// Ответ на выполнение хука -#[derive(Debug, Clone)] -pub enum HookResponse { - Success(Value), - Error(String), - NoHandler, -} - -/// Ответ на загрузку плагина -#[derive(Debug, Clone)] -pub enum LoadPluginResponse { - Success(String), // plugin_id - Error(String), -} - -/// Ответ на выгрузку плагина -#[derive(Debug, Clone)] -pub enum UnloadPluginResponse { - Success, - Error(String), -} - -/// Ответ на получение списка плагинов -#[derive(Debug)] -pub struct ListPluginsResponse { - pub plugins: Vec, -} - -/// Ответ на получение информации о плагине -#[derive(Debug)] -pub enum GetPluginResponse { - Found(PluginInfo), - NotFound, - Error(String), -} - -/// Информация о плагине для передачи через канал -#[derive(Debug, Clone)] -pub struct PluginInfo { - pub id: String, - pub name: String, - pub version: String, - pub description: String, - pub author: String, - pub path: String, - pub state: String, - pub hooks: Vec, -} - -/// Каналы для системы плагинов -#[derive(Clone)] -pub struct PluginChannels { - pub message_sender: Sender, - pub message_receiver: Arc>>, -} - -impl PluginChannels { - /// Создать новые каналы - pub fn new() -> Self { - let (sender, receiver) = unbounded(); - Self { - message_sender: sender, - message_receiver: Arc::new(RwLock::new(receiver)), - } - } - - /// Отправить сообщение - pub fn send(&self, message: PluginMessage) -> Result<(), String> { - self.message_sender.send(message) - .map_err(|e| format!("Failed to send message: {}", e)) - } - - /// Попробовать получить сообщение - pub fn try_recv(&self) -> Result { - let receiver = self.message_receiver.read(); - receiver.try_recv() - } - - /// Ожидать сообщение (блокирующая операция) - pub fn recv(&self) -> Result { - let receiver = self.message_receiver.read(); - receiver.recv() - .map_err(|e| format!("Failed to receive message: {}", e)) - } -}