lruFrequentlyAccessedCondition function

HiCond lruFrequentlyAccessedCondition({
  1. String name = 'lru:frequentlyAccessed',
  2. String metaKey = 'meta',
  3. String accessCountKey = 'access_count',
  4. required int minAccessCount,
})

Creates an LRU condition based on access count threshold.

Returns true when access count >= minAccessCount. Useful for keeping frequently accessed entries.

Parameters

  • name: Condition name, defaults to 'lru:frequentlyAccessed'
  • metaKey: Key in ctx.data for metadata
  • accessCountKey: Key in meta for access count
  • minAccessCount: Minimum accesses to be considered "frequent"

Implementation

HiCond<dynamic> lruFrequentlyAccessedCondition({
  String name = 'lru:frequentlyAccessed',
  String metaKey = 'meta',
  String accessCountKey = 'access_count',
  required int minAccessCount,
}) {
  return HiCond<dynamic>(
    name: name,
    isStable: true, // Only changes when access_count changes
    predicate: (payload, data) {
      final meta = data[metaKey] as Map<String, dynamic>?;
      if (meta == null) return false; // No meta = not frequent

      final accessCount = meta[accessCountKey] as int? ?? 0;
      return accessCount >= minAccessCount;
    },
  );
}