use serde::{Deserialize, Serialize}; use crate::types::{ data::Message, message::{ClientMessage, WsMessage}, }; #[derive(Debug, Serialize, Deserialize)] pub struct PluginJson { pub id: String, pub version: String, pub supported_versions: Vec, pub file: String, pub args: Vec, } #[derive(Debug, Serialize, Deserialize)] pub struct PluginHandshake { pub id: String, } #[derive(Debug, Clone, Serialize)] #[serde(tag = "type", content = "params", rename_all = "snake_case")] pub enum LoaderMessage { Request { user_id: String, msg: WsMessage, }, MessageSent { user_id: String, msg: Message, }, Shutdown, } #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(tag = "type", content = "params", rename_all = "snake_case")] pub enum PluginMessage { SendMessage { channel_id: String, contents: String, }, }