use crate::utils::network::tlsstream_client::TLSStreamClient;
use std::io;
#[derive(Debug)]
pub enum XMPPReadError {
Parse,
Timeout,
TlsRead(io::Error),
}
pub struct XMPPClient<T: TLSStreamClient> {
pub tls_stream: T,
}
impl<T: TLSStreamClient> XMPPClient<T> {
pub fn send_data<D: ToString>(&mut self, data: D) -> Result<(), io::Error> {
self.tls_stream.write(data.to_string())
}
pub fn read_data(&mut self) -> Result<String, XMPPReadError> {
self.tls_stream.read().map_err(XMPPReadError::TlsRead)
}
}