pub async fn handle<B>( engine: Arc<ArcSwap<Engine>>, addr: Option<SocketAddr>, req: Request<B>, ) -> Result<Response<BoxBody<Bytes, Box<dyn Error + Send + Sync>>>, Box<dyn Error + Send + Sync>>where B: Body + Unpin + Send + 'static, B::Data: Into<Bytes> + Clone + Send, B::Error: Into<Box<dyn Error + Send + Sync>> + Send,