pub async fn serve_http<Psk, P, H, F, E>( tcp_stream: TcpStream, responder: Responder<P, Psk>, handle_request: H, handler_timeout: Option<Duration>, ) -> Result<(), ServerError>where P: FnMut(&[u8]) -> Option<Psk>, Psk: AsRef<[u8]>, H: FnMut(&[u8], Request<Body>) -> F, F: 'static + Send + Future<Output = Result<Response<Body>, E>>, E: Into<Box<dyn Error + Send + Sync>>,