cross_ws/websocket/
mod.rs

1pub(crate) mod backend;
2
3mod sender;
4mod receiver;
5
6pub use sender::*;
7pub use receiver::*;
8
9use crate::Result;
10use crate::traits::*;
11
12/// Stream-based WebSocket.
13#[derive(Debug)]
14pub struct WebSocketWithBackend<Backend: WebSocketTrait = backend::WebSocket> {
15    backend: std::marker::PhantomData<Backend>,
16}
17
18impl<Backend: WebSocketTrait> WebSocketWithBackend<Backend> {
19    /// Creates a new WebSocket and connects it to the specified `url`.
20    pub async fn new(url: &str) -> Result<(WebSocketSender<Backend::Sender>, WebSocketReceiver<Backend::Receiver>)>
21    {
22        Backend::new(url).await.map(|(sender, receiver)| (sender.into(), receiver.into()))
23    }
24}
25
26/// Type alias for WebSocket with the default backend.
27pub type WebSocket = WebSocketWithBackend<backend::WebSocket>;