claim method

Future<bool> claim(
  1. String identity,
  2. DateTime now
)

Implementation

Future<bool> claim(String identity, DateTime now) {
  late bool claimed;
  _serial = _serial.then((_) async {
    final entries = await _read();
    final cutoff = now.subtract(window);
    entries.removeWhere((_, value) => value.isBefore(cutoff));
    claimed = !entries.containsKey(identity);
    if (claimed) entries[identity] = now;
    await _write(entries);
  });
  return _serial.then((_) => claimed);
}