/
GreyCat
/
openhuman
Обзор
Документация
Войти
/
GreyCat
/
openhuman
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/api/models/socket.rs
74 строки
2 KB
Steven Enamakel
ci: speed up GitHub Actions builds (~14m → ~3-5m warm) (#136)
01 апр 2026, 00:16
Не верифицирован
01 апр 2026, 00:16
c5e5ae1
Код
Авторство
О чём код?
use serde::{Deserialize, Serialize}; /// Socket connection status #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "lowercase")] #[derive(Default)] pub enum ConnectionStatus { #[default] Disconnected, Connecting, Connected, Reconnecting, Error, } /// Socket connection state emitted to frontend #[derive(Debug, Clone, Serialize, Deserialize)] pub struct SocketState { pub status: ConnectionStatus, pub socket_id: Option<String>, #[serde(skip_serializing_if = "Option::is_none")] pub error: Option<String>, } impl Default for SocketState { fn default() -> Self { Self { status: ConnectionStatus::Disconnected, socket_id: None, error: None, } } } /// Generic socket message wrapper #[allow(dead_code)] #[derive(Debug, Clone, Serialize, Deserialize)] pub struct SocketMessage { pub event: String, pub data: serde_json::Value, } /// MCP request structure (JSON-RPC 2.0) #[allow(dead_code)] #[derive(Debug, Clone, Serialize, Deserialize)] pub struct McpRequest { pub jsonrpc: String, pub id: serde_json::Value, pub method: String, #[serde(skip_serializing_if = "Option::is_none")] pub params: Option<serde_json::Value>, } /// MCP response structure (JSON-RPC 2.0) #[allow(dead_code)] #[derive(Debug, Clone, Serialize, Deserialize)] pub struct McpResponse { pub jsonrpc: String, pub id: serde_json::Value, #[serde(skip_serializing_if = "Option::is_none")] pub result: Option<serde_json::Value>, #[serde(skip_serializing_if = "Option::is_none")] pub error: Option<McpError>, } /// MCP error structure #[allow(dead_code)] #[derive(Debug, Clone, Serialize, Deserialize)] pub struct McpError { pub code: i32, pub message: String, #[serde(skip_serializing_if = "Option::is_none")] pub data: Option<serde_json::Value>, }