23 lines
560 B
Rust
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()
|
|
}
|
|
}
|