diff options
| author | Miquel Sabaté Solà <mssola@mssola.com> | 2026-01-15 09:52:16 +0100 |
|---|---|---|
| committer | Miquel Sabaté Solà <mssola@mssola.com> | 2026-01-15 09:52:16 +0100 |
| commit | bc9f018e26597761c0e2c63b19337f431ab986db (patch) | |
| tree | fc51c433fd3792a57ab9a3a76b4744e140cedac3 | |
| parent | 0c89256c782f0d1e98e93047fa90ad90b4e003e3 (diff) | |
| download | mihi-bc9f018e26597761c0e2c63b19337f431ab986db.tar.gz mihi-bc9f018e26597761c0e2c63b19337f431ab986db.zip | |
Simplify practice loop by removing exit code
Since we no longer care that much about the exit code, we can simplify
the main loop further, while also reordering how words are selected.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
| -rw-r--r-- | crates/cli/src/run.rs | 44 |
1 files changed, 16 insertions, 28 deletions
diff --git a/crates/cli/src/run.rs b/crates/cli/src/run.rs index bbfa6bc..bc62770 100644 --- a/crates/cli/src/run.rs +++ b/crates/cli/src/run.rs @@ -311,40 +311,28 @@ pub fn run(args: Vec<String>) { let locale = current_locale(); loop { - let words = match category { - Some(cat) => select_relevant_words(cat, &flags, 15), - None => select_general_words(&flags), - }; - - let exercises = - match mihi::select_relevant_exercises(kind, if exercises_only { 5 } else { 1 }) { - Ok(exercises) => exercises, - Err(e) => { - println!("error: practice: {e}"); - std::process::exit(1); - } + if !exercises_only { + let words = match category { + Some(cat) => select_relevant_words(cat, &flags, 15), + None => select_general_words(&flags), }; - - let code = match words { - Ok(list) => { - if !exercises_only - && !run_words(list, &locale) { - std::process::exit(1); - } - if !run_exercises(exercises) { - std::process::exit(1); + if let Ok(list) = words { + if !run_words(list, &locale) { + break; } - - 0 } - Err(e) => { - println!("error: practice: {e}"); - 1 + } + + if let Ok(exercises) = + mihi::select_relevant_exercises(kind, if exercises_only { 5 } else { 1 }) + { + if !run_exercises(exercises) { + break; } - }; + } if !endless { - std::process::exit(code); + break; } } } |
