summaryrefslogtreecommitdiff
path: root/src/term.rs
diff options
context:
space:
mode:
authormo8it <mo8it@proton.me>2024-10-14 00:42:49 +0200
committermo8it <mo8it@proton.me>2024-10-14 00:42:49 +0200
commit8cac21511cbcc148ea7a4c8c6d196c9c0bf17255 (patch)
treedcb7de9547f73991aa917c7686ba49305bc48f4a /src/term.rs
parent396ee4d618bc5e1cd5c84495f571f9d3f79774c8 (diff)
Small improvements to showing progress
Diffstat (limited to 'src/term.rs')
-rw-r--r--src/term.rs38
1 files changed, 23 insertions, 15 deletions
diff --git a/src/term.rs b/src/term.rs
index 0294017..8a2f8c5 100644
--- a/src/term.rs
+++ b/src/term.rs
@@ -164,26 +164,34 @@ pub fn show_exercises_check_progress(
let mut exercise_num = 1;
for exercise_progress in progresses {
- let color = match exercise_progress {
- ExerciseCheckProgress::None => Color::Reset,
- ExerciseCheckProgress::Checking => Color::Blue,
- ExerciseCheckProgress::Done => Color::Green,
- ExerciseCheckProgress::Pending => Color::Red,
- };
-
- stdout.queue(SetForegroundColor(color))?;
+ match exercise_progress {
+ ExerciseCheckProgress::None => (),
+ ExerciseCheckProgress::Checking => {
+ stdout.queue(SetForegroundColor(Color::Blue))?;
+ }
+ ExerciseCheckProgress::Done => {
+ stdout.queue(SetForegroundColor(Color::Green))?;
+ }
+ ExerciseCheckProgress::Pending => {
+ stdout.queue(SetForegroundColor(Color::Red))?;
+ }
+ }
+
write!(stdout, "{exercise_num:<3}")?;
+ stdout.queue(ResetColor)?;
- if exercise_num % n_cols == 0 {
- stdout.write_all(b"\n")?;
- } else {
- stdout.write_all(b" ")?;
- }
+ if exercise_num != progresses.len() {
+ if exercise_num % n_cols == 0 {
+ stdout.write_all(b"\n")?;
+ } else {
+ stdout.write_all(b" ")?;
+ }
- exercise_num += 1;
+ exercise_num += 1;
+ }
}
- stdout.queue(ResetColor)?.flush()
+ stdout.flush()
}
pub fn clear_terminal(stdout: &mut StdoutLock) -> io::Result<()> {