1
0
mirror of https://github.com/rust-lang/rustlings.git synced 2024-11-08 09:09:17 +01:00

Inline reset

This commit is contained in:
mo8it 2024-03-31 20:08:23 +02:00
parent fb32d0b86f
commit 7560aec66b
2 changed files with 7 additions and 11 deletions

@ -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());
}

@ -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();