loop method

Timer loop()

Loops the loading bar.

Implementation

Timer loop() {
  final width = console.columns - 2;
  bool go_forward = true;
  bool is_done = true;
  return Timer.periodic(
    const Duration(milliseconds: 50),
    (final timer) async {
      if (is_done) {
        is_done = false;
        for (int i = 1; i <= width; i++) {
          position = i;
          await Future<void>.delayed(const Duration(milliseconds: 5));
          if (go_forward) {
            forward();
          } else {
            backward();
          }
        }
        go_forward = !go_forward;
        is_done = true;
      }
    },
  );
}