use aws_lambda_events::apigw::{ApiGatewayProxyRequest, ApiGatewayProxyResponse};
use futures::FutureExt;
use lambda_runtime::{service_fn, LambdaEvent};
use std::future::Future;
pub async fn run_lambda<F, Fut>(mut dispatch_event: F)
where
F: FnMut(LambdaEvent<ApiGatewayProxyRequest>) -> Fut,
Fut: Future<Output = ApiGatewayProxyResponse>,
{
lambda_runtime::run(service_fn(|event: LambdaEvent<ApiGatewayProxyRequest>| {
dispatch_event(event).map(Result::<_, std::convert::Infallible>::Ok)
}))
.await
.expect("Lambda run loop should never exit")
}