tetratto/crates/core/src/model/socket.rs
2025-04-27 23:11:37 -04:00

23 lines
560 B
Rust

use serde::{Serialize, Deserialize, de::DeserializeOwned};
#[derive(Serialize, Deserialize, PartialEq, Eq)]
pub enum SocketMethod {
/// Authentication and channel identification.
Headers,
/// A message was sent in the channel.
Message,
/// A message was deleted in the channel.
Delete,
}
#[derive(Serialize, Deserialize)]
pub struct SocketMessage {
pub method: SocketMethod,
pub data: String,
}
impl SocketMessage {
pub fn data<T: DeserializeOwned>(&self) -> T {
serde_json::from_str(&self.data).unwrap()
}
}