getOrCompute<T> method

  1. @override
T getOrCompute<T>({
  1. required CacheKey key,
  2. required T compute(),
})
override

Implementation

@override
T getOrCompute<T>({required CacheKey key, required T Function() compute}) {
  final container = _getOrCreateContainer(key.cacheName);
  final cached = container.data[key.key];

  if (cached != null && cached is T) {
    container.recordHit();
    _updateLRU(container, key.key, cached);
    return cached;
  }

  container.recordMiss();
  final result = compute();
  _addToCache(container, key.key, result);
  return result;
}