remove method
Removes the mapping for key if present.
Returns the commit-log sequence number assigned to this
deletion, or null if no sequence number was produced.
Throws a DataStoreException if the underlying store fails.
Implementation
@override
Future<int?> remove(key, {bool skipCommit = false}) async {
for (final hook in preRemoveHooks) {
await hook(key, skipCommit: skipCommit);
}
final wasPresent = await exists(key);
await _getBox().delete(key);
_expiryIndex.remove(key);
for (final hook in postRemoveHooks) {
await hook(key, skipCommit: skipCommit);
}
if (wasPresent) {
_changesController.add(KeyRemoved(key));
}
return null;
}