set<T> method

T set<T>(
  1. Object key,
  2. T value, [
  3. MemoryCacheEntryOptions? options
])

Sets the value for key.

Returns value for method chaining.

Implementation

T set<T>(Object key, T value, [MemoryCacheEntryOptions? options]) {
  final entry = createEntry(key)..value = value;

  if (options != null) {
    entry
      ..absoluteExpiration = options.absoluteExpiration
      ..absoluteExpirationRelativeToNow =
          options.absoluteExpirationRelativeToNow
      ..slidingExpiration = options.slidingExpiration
      ..priority = options.priority
      ..size = options.size;

    if (options.hasExpirationTokens) {
      for (final token in options.expirationTokens) {
        entry.expirationTokens.add(token);
      }
    }

    if (options.hasPostEvictionCallbacks) {
      for (final callback in options.postEvictionCallbacks) {
        entry.postEvictionCallbacks.add(callback);
      }
    }
  }

  // Trigger entry disposal by accessing it
  _commitEntry(entry);

  return value;
}