filterItems method

void filterItems()

Filter the items in the cache so that it obeys the config.

Items are retained based on the number of accesses they have until the CacheConfig.maxSize is respected.

Implementation

void filterItems() {
  final keys = List.of(_store.keys.where((element) => element.identifier == identifier));

  if (config.maxSize != null && keys.length > config.maxSize!) {
    keys.sort((a, b) => _store[a]!.accessCount.compareTo(_store[b]!.accessCount));

    final overflow = keys.length - config.maxSize!;

    for (final key in keys.take(overflow)) {
      _store.remove(key);
    }
  }
}