static Func <IHttpRequest, Task <HttpResponse> > Wrap(Func <IHttpRequest, Task <HttpResponse> > handler, LeakyBucket rateLimitBucket) { return(request => rateLimitBucket.Fill(1) ? handler(request) : Task.FromResult(TooManyRequests)); }