get<T> method
Gets a cache entry
Implementation
Future<T?> get<T>(String key, {List<CacheLevel>? levels}) async {
await _ensureInitialized();
// Normalize the levels
levels ??= [CacheLevel.memory, CacheLevel.disk];
// Try to get the entry from each level
for (final level in levels) {
final entry = await _getFromLevel<T>(key, level);
if (entry != null) {
// Update the last accessed time
entry.metadata.updateLastAccessedAt();
// If the entry was found in a lower level, store it in higher levels
if (level != CacheLevel.memory && levels.contains(CacheLevel.memory)) {
await _storeInLevel(
key,
entry.data,
entry.metadata,
CacheLevel.memory,
);
}
return entry.data as T;
}
}
return null;
}