import 'dart:async'; /// Runs an action after [duration] of inactivity, cancelling any pending /// run each time [run] is called again. class Debouncer { Debouncer(this.duration); final Duration duration; Timer? _timer; void run(void Function() action) { _timer?.cancel(); _timer = Timer(duration, action); } void cancel() => _timer?.cancel(); }