debugStats method

Future<PrfRateLimiterStats> debugStats()

Returns detailed stats useful for debugging and logging.

Implementation

Future<PrfRateLimiterStats> debugStats() async {
  final now = DateTime.now();
  final tokens = await _tokenCount.getOrFallback(maxTokens.toDouble());
  final last = await _lastRefill.getOrFallback(now);
  final elapsedMs = now.difference(last).inMilliseconds;
  final refillRatePerMs = maxTokens / refillDuration.inMilliseconds;
  final refilledTokens = tokens + (elapsedMs * refillRatePerMs);
  final cappedTokenCount = min(maxTokens.toDouble(), refilledTokens);

  return PrfRateLimiterStats(
    tokens: tokens,
    lastRefill: last,
    maxTokens: maxTokens.toDouble(),
    refillDuration: refillDuration,
    now: now,
    refillRatePerMs: refillRatePerMs,
    refilledTokens: refilledTokens,
    cappedTokenCount: cappedTokenCount,
  );
}