Skip to content

Commit bdc6dad

Browse files
committed
Update names
1 parent ea73af9 commit bdc6dad

File tree

2 files changed

+33
-29
lines changed

2 files changed

+33
-29
lines changed

src/app_state.rs

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use crate::{
2020
embedded::EMBEDDED_FILES,
2121
exercise::{Exercise, RunnableExercise},
2222
info_file::ExerciseInfo,
23-
term::{self, ExercisesCheckProgressVisualizer},
23+
term::{self, CheckProgressVisualizer},
2424
};
2525

2626
const STATE_FILE_NAME: &str = ".rustlings-state.txt";
@@ -42,7 +42,7 @@ pub enum StateFileStatus {
4242
}
4343

4444
#[derive(Clone, Copy)]
45-
pub enum ExerciseCheckProgress {
45+
pub enum CheckProgress {
4646
None,
4747
Checking,
4848
Done,
@@ -412,10 +412,10 @@ impl AppState {
412412
let term_width = terminal::size()
413413
.context("Failed to get the terminal size")?
414414
.0;
415-
let mut progress_visualizer = ExercisesCheckProgressVisualizer::build(stdout, term_width)?;
415+
let mut progress_visualizer = CheckProgressVisualizer::build(stdout, term_width)?;
416416

417417
let next_exercise_ind = AtomicUsize::new(0);
418-
let mut progresses = vec![ExerciseCheckProgress::None; self.exercises.len()];
418+
let mut progresses = vec![CheckProgress::None; self.exercises.len()];
419419

420420
thread::scope(|s| {
421421
let (exercise_progress_sender, exercise_progress_receiver) = mpsc::channel();
@@ -435,17 +435,17 @@ impl AppState {
435435
};
436436

437437
if exercise_progress_sender
438-
.send((exercise_ind, ExerciseCheckProgress::Checking))
438+
.send((exercise_ind, CheckProgress::Checking))
439439
.is_err()
440440
{
441441
break;
442442
};
443443

444444
let success = exercise.run_exercise(None, &slf.cmd_runner);
445445
let progress = match success {
446-
Ok(true) => ExerciseCheckProgress::Done,
447-
Ok(false) => ExerciseCheckProgress::Pending,
448-
Err(_) => ExerciseCheckProgress::None,
446+
Ok(true) => CheckProgress::Done,
447+
Ok(false) => CheckProgress::Pending,
448+
Err(_) => CheckProgress::None,
449449
};
450450

451451
if exercise_progress_sender
@@ -472,34 +472,33 @@ impl AppState {
472472
let mut first_pending_exercise_ind = None;
473473
for exercise_ind in 0..progresses.len() {
474474
match progresses[exercise_ind] {
475-
ExerciseCheckProgress::Done => {
475+
CheckProgress::Done => {
476476
self.set_status(exercise_ind, true)?;
477477
}
478-
ExerciseCheckProgress::Pending => {
478+
CheckProgress::Pending => {
479479
self.set_status(exercise_ind, false)?;
480480
if first_pending_exercise_ind.is_none() {
481481
first_pending_exercise_ind = Some(exercise_ind);
482482
}
483483
}
484-
ExerciseCheckProgress::None | ExerciseCheckProgress::Checking => {
484+
CheckProgress::None | CheckProgress::Checking => {
485485
// If we got an error while checking all exercises in parallel,
486486
// it could be because we exceeded the limit of open file descriptors.
487487
// Therefore, try running exercises with errors sequentially.
488-
progresses[exercise_ind] = ExerciseCheckProgress::Checking;
488+
progresses[exercise_ind] = CheckProgress::Checking;
489489
progress_visualizer.update(&progresses)?;
490490

491491
let exercise = &self.exercises[exercise_ind];
492492
let success = exercise.run_exercise(None, &self.cmd_runner)?;
493493
if success {
494-
progresses[exercise_ind] = ExerciseCheckProgress::Done;
494+
progresses[exercise_ind] = CheckProgress::Done;
495495
} else {
496+
progresses[exercise_ind] = CheckProgress::Pending;
496497
if first_pending_exercise_ind.is_none() {
497498
first_pending_exercise_ind = Some(exercise_ind);
498499
}
499-
progresses[exercise_ind] = ExerciseCheckProgress::Pending;
500500
}
501501
self.set_status(exercise_ind, success)?;
502-
503502
progress_visualizer.update(&progresses)?;
504503
}
505504
}

src/term.rs

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use std::{
99
io::{self, BufRead, StdoutLock, Write},
1010
};
1111

12-
use crate::app_state::ExerciseCheckProgress;
12+
use crate::app_state::CheckProgress;
1313

1414
pub struct MaxLenWriter<'a, 'b> {
1515
pub stdout: &'a mut StdoutLock<'b>,
@@ -87,27 +87,31 @@ impl<'a> CountedWrite<'a> for StdoutLock<'a> {
8787
}
8888
}
8989

90-
pub struct ExercisesCheckProgressVisualizer<'a, 'b> {
90+
pub struct CheckProgressVisualizer<'a, 'b> {
9191
stdout: &'a mut StdoutLock<'b>,
9292
n_cols: usize,
9393
}
9494

95-
impl<'a, 'b> ExercisesCheckProgressVisualizer<'a, 'b> {
95+
impl<'a, 'b> CheckProgressVisualizer<'a, 'b> {
96+
const CHECKING_COLOR: Color = Color::Blue;
97+
const DONE_COLOR: Color = Color::Green;
98+
const PENDING_COLOR: Color = Color::Red;
99+
96100
pub fn build(stdout: &'a mut StdoutLock<'b>, term_width: u16) -> io::Result<Self> {
97101
clear_terminal(stdout)?;
98102
stdout.write_all("Checking all exercises…\n".as_bytes())?;
99103

100104
// Legend
101105
stdout.write_all(b"Color of exercise number: ")?;
102-
stdout.queue(SetForegroundColor(Color::Blue))?;
106+
stdout.queue(SetForegroundColor(Self::CHECKING_COLOR))?;
103107
stdout.write_all(b"Checking")?;
104108
stdout.queue(ResetColor)?;
105109
stdout.write_all(b" - ")?;
106-
stdout.queue(SetForegroundColor(Color::Green))?;
110+
stdout.queue(SetForegroundColor(Self::DONE_COLOR))?;
107111
stdout.write_all(b"Done")?;
108112
stdout.queue(ResetColor)?;
109113
stdout.write_all(b" - ")?;
110-
stdout.queue(SetForegroundColor(Color::Red))?;
114+
stdout.queue(SetForegroundColor(Self::PENDING_COLOR))?;
111115
stdout.write_all(b"Pending")?;
112116
stdout.queue(ResetColor)?;
113117
stdout.write_all(b"\n")?;
@@ -119,21 +123,22 @@ impl<'a, 'b> ExercisesCheckProgressVisualizer<'a, 'b> {
119123
Ok(Self { stdout, n_cols })
120124
}
121125

122-
pub fn update(&mut self, progresses: &[ExerciseCheckProgress]) -> io::Result<()> {
126+
pub fn update(&mut self, progresses: &[CheckProgress]) -> io::Result<()> {
123127
self.stdout.queue(MoveTo(0, 2))?;
124128

125129
let mut exercise_num = 1;
126130
for exercise_progress in progresses {
127131
match exercise_progress {
128-
ExerciseCheckProgress::None => (),
129-
ExerciseCheckProgress::Checking => {
130-
self.stdout.queue(SetForegroundColor(Color::Blue))?;
132+
CheckProgress::None => (),
133+
CheckProgress::Checking => {
134+
self.stdout
135+
.queue(SetForegroundColor(Self::CHECKING_COLOR))?;
131136
}
132-
ExerciseCheckProgress::Done => {
133-
self.stdout.queue(SetForegroundColor(Color::Green))?;
137+
CheckProgress::Done => {
138+
self.stdout.queue(SetForegroundColor(Self::DONE_COLOR))?;
134139
}
135-
ExerciseCheckProgress::Pending => {
136-
self.stdout.queue(SetForegroundColor(Color::Red))?;
140+
CheckProgress::Pending => {
141+
self.stdout.queue(SetForegroundColor(Self::PENDING_COLOR))?;
137142
}
138143
}
139144

0 commit comments

Comments
 (0)