pub(crate) async fn with_cancellation_handler<Request, Cancellation, Response>( request: Request, cancellation: Cancellation, ) -> Result<Response<Response>, Status>where Request: Future<Output = Result<Response<Response>, Status>> + Send + 'static, Cancellation: Future<Output = Result<Response<Response>, Status>> + Send + 'static, Response: Send + 'static,