import 'dart:async';

class Debouncer {
  static Timer? _timer;

  static void run(void Function() callback, [Duration duration = const Duration(milliseconds: 500)]) {
    if (_timer?.isActive ?? false) {
      _timer!.cancel();
    
    }

    _timer = Timer(duration, callback);
  }
}


void main() {
  // Debouncer debouncer = Debouncer(Duration(seconds: 5));
  print('program running');


  // debouncer.run(() {
  //   print('Terdebounce');
  // });

  

  Debouncer.run(
    () => print('terdebounce'),
    Duration(seconds: 5)
  );
}