load method
Implementation
Future<CacheEntry?> load(String url) async {
final completer = Completer<CacheEntry?>();
final key = url.hashCode;
final file = File("$path/${key % 10}/$key");
final exists = await file.exists();
if (exists) {
try {
final entry = await CacheEntry.fromFile(file);
stats.bytesRead += entry.length;
stats.hitFiles += 1;
completer.complete(entry);
} catch (error) {
// delete invalid files, it's not best
await file.delete(recursive: false);
completer.complete(null);
}
} else {
completer.complete(null);
}
return completer.future;
}