karyon_net/codec/
websocket.rs

1use 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}