cross_ws/websocket/sender/
mod.rs

1
2use super::backend;
3use crate::{Message, Result, traits::WebSocketSenderTrait};
4
5/// Stream-based WebSocket sender.
6#[derive(Debug)]
7pub struct WebSocketSender<Backend: WebSocketSenderTrait = backend::WebSocketSender> {
8    backend: Backend,
9}
10
11impl<Backend: WebSocketSenderTrait> WebSocketSender<Backend> {
12    /// Sends a message.
13    pub async fn send(&mut self, message: Message) -> Result<()> {
14        self.backend.send(message).await
15    }
16
17    /// Closes the WebSocket.
18    pub async fn close(&mut self, message: Option<(u16, String)>) -> Result<()> {
19        self.backend.close(message).await
20    }
21}
22
23impl<Backend: WebSocketSenderTrait> From<Backend> for WebSocketSender<Backend> {
24    fn from(backend: Backend) -> Self {
25        WebSocketSender { backend }
26    }
27}