getStats method

CacheStats getStats()

Get cache statistics

Implementation

CacheStats getStats() {
  final validEntries = _memoryCache.values.where((e) => e.isValid).toList();
  final totalSize = validEntries.fold<int>(
    0,
    (sum, entry) => sum + entry.content.length,
  );

  return CacheStats(
    entryCount: validEntries.length,
    totalSizeBytes: totalSize,
    hitRate: _calculateHitRate(),
    oldestEntry: validEntries.isNotEmpty
        ? validEntries
            .map((e) => e.cachedAt)
            .reduce((a, b) => a.isBefore(b) ? a : b)
        : null,
    newestEntry: validEntries.isNotEmpty
        ? validEntries
            .map((e) => e.cachedAt)
            .reduce((a, b) => a.isAfter(b) ? a : b)
        : null,
  );
}