27 lines
651 B
Rust
27 lines
651 B
Rust
|
use serde::{Deserialize, Serialize};
|
||
|
|
||
|
#[derive(Debug, Serialize, Deserialize)]
|
||
|
pub enum ClientMessage {
|
||
|
Hello(),
|
||
|
}
|
||
|
|
||
|
impl ClientMessage {
|
||
|
pub fn try_read(msg: tungstenite::Message) -> Result<ClientMessage, rmp_serde::decode::Error> {
|
||
|
rmp_serde::from_slice(msg.into_data().as_slice())
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#[derive(Debug, Serialize, Deserialize)]
|
||
|
pub enum ServerMessage {
|
||
|
Hello(String, String), // Server name - Protocol version
|
||
|
Error(String),
|
||
|
}
|
||
|
|
||
|
impl Into<tungstenite::Message> for ServerMessage {
|
||
|
fn into(self) -> tungstenite::Message {
|
||
|
tungstenite::Message::binary(
|
||
|
rmp_serde::to_vec_named(&self).expect("could not serialize server response"),
|
||
|
)
|
||
|
}
|
||
|
}
|