use serde::{Deserialize, Serialize}; #[derive(Debug, Serialize, Deserialize)] pub enum ClientMessage { Hello(), } impl ClientMessage { pub fn try_read(msg: tungstenite::Message) -> Result { 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 for ServerMessage { fn into(self) -> tungstenite::Message { tungstenite::Message::binary( rmp_serde::to_vec_named(&self).expect("could not serialize server response"), ) } }