summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/app_state.rs6
-rw-r--r--src/list/state.rs3
-rw-r--r--src/run.rs7
-rw-r--r--src/watch/state.rs37
4 files changed, 28 insertions, 25 deletions
diff --git a/src/app_state.rs b/src/app_state.rs
index 4160f6e..11ac8ee 100644
--- a/src/app_state.rs
+++ b/src/app_state.rs
@@ -309,12 +309,12 @@ impl AppState {
let mut output = Vec::with_capacity(OUTPUT_CAPACITY);
for (exercise_ind, exercise) in self.exercises().iter().enumerate() {
- writer.write_fmt(format_args!("Running {exercise} ... "))?;
+ write!(writer, "Running {exercise} ... ")?;
writer.flush()?;
let success = exercise.run(&mut output)?;
if !success {
- writer.write_fmt(format_args!("{}\n\n", "FAILED".red()))?;
+ writeln!(writer, "{}\n", "FAILED".red())?;
self.current_exercise_ind = exercise_ind;
@@ -328,7 +328,7 @@ impl AppState {
return Ok(ExercisesProgress::Pending);
}
- writer.write_fmt(format_args!("{}\n", "ok".green()))?;
+ writeln!(writer, "{}", "ok".green())?;
output.clear();
}
diff --git a/src/list/state.rs b/src/list/state.rs
index 0253bb9..19a77fe 100644
--- a/src/list/state.rs
+++ b/src/list/state.rs
@@ -231,8 +231,7 @@ impl<'a> UiState<'a> {
.context("Invalid selection index")?;
let exercise_path = self.app_state.reset_exercise_by_ind(ind)?;
- self.message
- .write_fmt(format_args!("The exercise {exercise_path} has been reset"))?;
+ write!(self.message, "The exercise {exercise_path} has been reset")?;
Ok(self.with_updated_rows())
}
diff --git a/src/run.rs b/src/run.rs
index 1db8dcb..cbc9ad7 100644
--- a/src/run.rs
+++ b/src/run.rs
@@ -25,11 +25,12 @@ pub fn run(app_state: &mut AppState) -> Result<()> {
);
}
- stdout.write_fmt(format_args!(
- "{}{}\n",
+ writeln!(
+ stdout,
+ "{}{}",
"✓ Successfully ran ".green(),
exercise.path.green(),
- ))?;
+ )?;
if let Some(solution_path) = app_state.current_solution_path()? {
println!(
diff --git a/src/watch/state.rs b/src/watch/state.rs
index df492dc..40c01bf 100644
--- a/src/watch/state.rs
+++ b/src/watch/state.rs
@@ -88,19 +88,18 @@ impl<'a> WatchState<'a> {
self.writer.write_all(b"\n")?;
if self.manual_run {
- self.writer.write_fmt(format_args!("{}un/", 'r'.bold()))?;
+ write!(self.writer, "{}un/", 'r'.bold())?;
}
if !matches!(self.done_status, DoneStatus::Pending) {
- self.writer.write_fmt(format_args!("{}ext/", 'n'.bold()))?;
+ write!(self.writer, "{}ext/", 'n'.bold())?;
}
if !self.show_hint {
- self.writer.write_fmt(format_args!("{}int/", 'h'.bold()))?;
+ write!(self.writer, "{}int/", 'h'.bold())?;
}
- self.writer
- .write_fmt(format_args!("{}ist/{}uit? ", 'l'.bold(), 'q'.bold()))?;
+ write!(self.writer, "{}ist/{}uit? ", 'l'.bold(), 'q'.bold())?;
self.writer.flush()
}
@@ -115,28 +114,31 @@ impl<'a> WatchState<'a> {
self.writer.write_all(b"\n")?;
if self.show_hint {
- self.writer.write_fmt(format_args!(
- "{}\n{}\n\n",
+ writeln!(
+ self.writer,
+ "{}\n{}\n",
"Hint".bold().cyan().underlined(),
self.app_state.current_exercise().hint,
- ))?;
+ )?;
}
if !matches!(self.done_status, DoneStatus::Pending) {
- self.writer.write_fmt(format_args!(
- "{}\n\n",
+ writeln!(
+ self.writer,
+ "{}\n",
"Exercise done ✓
When you are done experimenting, enter `n` or `next` to go to the next exercise 🦀"
.bold()
.green(),
- ))?;
+ )?;
}
if let DoneStatus::DoneWithSolution(solution_path) = &self.done_status {
- self.writer.write_fmt(format_args!(
- "A solution file can be found at {}\n\n",
+ writeln!(
+ self.writer,
+ "A solution file can be found at {}\n",
style(TerminalFileLink(solution_path)).underlined().green()
- ))?;
+ )?;
}
let line_width = size()?.0;
@@ -145,10 +147,11 @@ When you are done experimenting, enter `n` or `next` to go to the next exercise
self.app_state.exercises().len() as u16,
line_width,
)?;
- self.writer.write_fmt(format_args!(
- "{progress_bar}Current exercise: {}\n",
+ writeln!(
+ self.writer,
+ "{progress_bar}Current exercise: {}",
self.app_state.current_exercise().terminal_link(),
- ))?;
+ )?;
self.show_prompt()?;