platform/fig/cache/lib/src/cache_item_interface.dart

31 lines
1 KiB
Dart

/// A cache item interface representing a single cache entry.
abstract class CacheItemInterface {
/// The key for this cache item.
String get key;
/// Retrieves the value of the item from the cache.
///
/// Returns null if the item does not exist or has expired.
dynamic get();
/// Confirms if the cache item lookup resulted in a cache hit.
bool get isHit;
/// Sets the value represented by this cache item.
///
/// [value] The serializable value to be stored.
/// Returns the invoked object.
CacheItemInterface set(dynamic value);
/// Sets the expiration time for this cache item.
///
/// [expiration] The point in time after which the item MUST be considered expired.
/// Returns the invoked object.
CacheItemInterface expiresAt(DateTime? expiration);
/// Sets the expiration time for this cache item relative to the current time.
///
/// [time] The period of time from now after which the item MUST be considered expired.
/// Returns the invoked object.
CacheItemInterface expiresAfter(Duration? time);
}