RequestRateLimiter

A rate limiter that follows Discord's rate limits for the REST api.

Inheritors

Functions

Link copied to clipboard
abstract suspend fun await(request: Request<*, *>): RequestToken

Awaits all active rate limits for the request, returning a RequestToken used to process the result of the request.

Link copied to clipboard
inline suspend fun <T> RequestRateLimiter.consume(request: Request<*, *>, consumer: (token: RequestToken) -> T): T

Awaits the rate limits for the request and then runs consumer. Throws an IllegalStateException if the supplied RequestToken was not completed.