cross_ws/websocket/
mod.rs1pub(crate) mod backend;
2
3mod sender;
4mod receiver;
5
6pub use sender::*;
7pub use receiver::*;
8
9use crate::Result;
10use crate::traits::*;
11
12#[derive(Debug)]
14pub struct WebSocketWithBackend<Backend: WebSocketTrait = backend::WebSocket> {
15 backend: std::marker::PhantomData<Backend>,
16}
17
18impl<Backend: WebSocketTrait> WebSocketWithBackend<Backend> {
19 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
26pub type WebSocket = WebSocketWithBackend<backend::WebSocket>;