karyon_net/codec/
websocket.rs1use async_tungstenite::tungstenite::Message;
2
3pub trait WebSocketCodec:
4 WebSocketDecoder<DeMessage = Self::Message, DeError = Self::Error>
5 + WebSocketEncoder<EnMessage = Self::Message, EnError = Self::Error>
6 + Send
7 + Sync
8 + Unpin
9{
10 type Message: Send + Sync;
11 type Error;
12}
13
14pub trait WebSocketEncoder {
15 type EnMessage;
16 type EnError;
17 fn encode(&self, src: &Self::EnMessage) -> std::result::Result<Message, Self::EnError>;
18}
19
20pub trait WebSocketDecoder {
21 type DeMessage;
22 type DeError;
23 fn decode(&self, src: &Message) -> std::result::Result<Option<Self::DeMessage>, Self::DeError>;
24}