#![allow(dead_code)]
use crate::Response;
use tokio::{io::{self, AsyncRead, AsyncWriteExt}, net::TcpStream, sync::Mutex};
pub struct Responder {
stream: Mutex<TcpStream>,
}
impl Responder {
pub fn new(stream: TcpStream) -> Self {
Responder { stream: Mutex::new(stream) }
}
pub async fn respond(&self, res: impl Response) -> io::Result<()> {
let mut stream = self.stream.lock().await;
stream.write_all(&res.as_response()[..]).await?;
stream.flush().await?;
Ok(())
}
}