summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.rs7
-rw-r--r--src/run.rs11
2 files changed, 7 insertions, 11 deletions
diff --git a/src/main.rs b/src/main.rs
index 72bff4d..0f298dd 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,5 +1,6 @@
+use crate::embedded::{WriteStrategy, EMBEDDED_FILES};
use crate::exercise::{Exercise, ExerciseList};
-use crate::run::{reset, run};
+use crate::run::run;
use crate::verify::verify;
use anyhow::{Context, Result};
use clap::{Parser, Subcommand};
@@ -207,7 +208,9 @@ If you are just starting with Rustlings, run the command `rustlings init` to ini
Subcommands::Reset { name } => {
let exercise = find_exercise(&name, &exercises)?;
- reset(exercise)?;
+ EMBEDDED_FILES
+ .write_exercise_to_disk(&exercise.path, WriteStrategy::Overwrite)
+ .with_context(|| format!("Failed to reset the exercise {exercise}"))?;
println!("The file {} has been reset!", exercise.path.display());
}
diff --git a/src/run.rs b/src/run.rs
index 2c9f99f..3f93f14 100644
--- a/src/run.rs
+++ b/src/run.rs
@@ -1,8 +1,7 @@
use anyhow::{bail, Result};
-use std::io::{self, stdout, Write};
+use std::io::{stdout, Write};
use std::time::Duration;
-use crate::embedded::{WriteStrategy, EMBEDDED_FILES};
use crate::exercise::{Exercise, Mode};
use crate::verify::test;
use indicatif::ProgressBar;
@@ -18,13 +17,7 @@ pub fn run(exercise: &Exercise, verbose: bool) -> Result<()> {
}
}
-// Resets the exercise by stashing the changes.
-pub fn reset(exercise: &Exercise) -> io::Result<()> {
- EMBEDDED_FILES.write_exercise_to_disk(&exercise.path, WriteStrategy::Overwrite)
-}
-
-// Invoke the rust compiler on the path of the given exercise
-// and run the ensuing binary.
+// Compile and run an exercise.
// This is strictly for non-test binaries, so output is displayed
fn compile_and_run(exercise: &Exercise) -> Result<()> {
let progress_bar = ProgressBar::new_spinner();