use crate::Result; use async_tungstenite::tungstenite::Message; pub trait WebSocketCodec: WebSocketDecoder + WebSocketEncoder + Send + Sync + 'static + Unpin { type Item: Send + Sync; } pub trait WebSocketEncoder { type EnItem; fn encode(&self, src: &Self::EnItem) -> Result; } pub trait WebSocketDecoder { type DeItem; fn decode(&self, src: &Message) -> Result; }