debugStats method
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,
);
}