diff options
| author | mo8it <mo8it@proton.me> | 2024-04-07 22:43:59 +0200 |
|---|---|---|
| committer | mo8it <mo8it@proton.me> | 2024-04-07 22:43:59 +0200 |
| commit | 99c9ab467b3e57f9dca080a6fe9c1dbd991a3fdb (patch) | |
| tree | e3fe5f15a35f7007ebfff49c2e5030fa7c1caf02 /src/exercise.rs | |
| parent | db43efe3ec9d0bba5ee997923d68d2356b08a257 (diff) | |
Implement resetting
Diffstat (limited to 'src/exercise.rs')
| -rw-r--r-- | src/exercise.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/exercise.rs b/src/exercise.rs index d01d427..508f477 100644 --- a/src/exercise.rs +++ b/src/exercise.rs @@ -10,7 +10,7 @@ use winnow::ascii::{space0, Caseless}; use winnow::combinator::opt; use winnow::Parser; -use crate::embedded::EMBEDDED_FILES; +use crate::embedded::{WriteStrategy, EMBEDDED_FILES}; // The number of context lines above and below a highlighted line. const CONTEXT: usize = 2; @@ -220,6 +220,12 @@ impl Exercise { pub fn looks_done(&self) -> Result<bool> { self.state().map(|state| state == State::Done) } + + pub fn reset(&self) -> Result<()> { + EMBEDDED_FILES + .write_exercise_to_disk(&self.path, WriteStrategy::Overwrite) + .with_context(|| format!("Failed to reset the exercise {self}")) + } } impl Display for Exercise { |
