evictExpired method
Automatically removes all expired elements.
Returns the number of elements removed
Implementation
@override
Future<int> evictExpired() async {
await _ensureInitialized();
final now = DateTime.now();
final expiredKeys = <String>[];
for (final entry in _metadataCache.entries) {
if (entry.value.expiresAt != null &&
now.isAfter(entry.value.expiresAt!)) {
expiredKeys.add(entry.key);
}
}
for (final key in expiredKeys) {
await remove(key);
}
return expiredKeys.length;
}