RateLimitSchedule constructor

RateLimitSchedule({
  1. required int maxPerPeriod,
  2. required Duration period,
  3. Duration cooldown = Duration.zero,
})

At most maxPerPeriod fires per rolling period, each at least cooldown after the previous. Requires maxPerPeriod >= 1 and a positive period; cooldown defaults to zero. Audited: 2026-06-12 11:26 EDT

Implementation

RateLimitSchedule({
  required int maxPerPeriod,
  required Duration period,
  Duration cooldown = Duration.zero,
}) : _maxPerPeriod = _validatedMaxPerPeriod(maxPerPeriod, period, cooldown),
     _period = period,
     _cooldown = cooldown;