stream_ws/
gloo.rs

1use crate::{WsErrorKind, WsMessageHandle, WsMessageKind};
2use gloo_net::websocket::{Message, WebSocketError as Error};
3
4pub type WsByteStream<S> = crate::WsByteStream<S, Message, Error, WsMessageHandler>;
5
6pub struct WsMessageHandler;
7
8impl WsMessageHandle<Message, Error> for WsMessageHandler {
9    fn message_into_kind(msg: Message) -> WsMessageKind {
10        match msg {
11            Message::Bytes(msg) => WsMessageKind::Bytes(msg),
12            _ => WsMessageKind::Other,
13        }
14    }
15
16    fn error_into_kind(e: Error) -> WsErrorKind {
17        match e {
18            Error::ConnectionClose(event) if event.was_clean => WsErrorKind::Closed,
19            e => WsErrorKind::Other(Box::new(e)),
20        }
21    }
22
23    fn message_from_bytes<T: Into<Vec<u8>>>(bytes: T) -> Message {
24        Message::Bytes(bytes.into())
25    }
26}