1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
use crate::message::Message; use crate::messages::Messages; use crate::{TcpStream, WsError}; use futures_lite::AsyncWriteExt; pub struct WsConnection { pub(crate) tcp_stream: TcpStream, } impl WsConnection { pub fn new(tcp_stream: TcpStream) -> WsConnection { WsConnection { tcp_stream } } pub fn messages(&mut self) -> Messages { Messages::new(self) } pub fn get_connection(&self) -> TcpStream { self.tcp_stream.clone() } pub async fn send(&mut self, message: Message) -> Result<(), WsError> { self.tcp_stream .write_all(Vec::from(message).as_slice()) .await .map_err(|_| WsError::Unknown) } }