update method

V update(
  1. K key,
  2. V update(
    1. V value
    ), {
  3. V ifAbsent()?,
})

Implementation

V update(K key, V Function(V value) update, {V Function()? ifAbsent}) {
  _LruMapItem<K, V> newUpdate(_LruMapItem<K, V> entry) {
    entry.value = update.call(entry.value);
    _afterNodeAccess(entry);
    return entry;
  }

  final newifAbsent = ifAbsent?.let((it) => () => _createNewNode(key, ifAbsent.call()));
  return _lruMap.update(key, newUpdate, ifAbsent: newifAbsent).value;
}