From bc9f018e26597761c0e2c63b19337f431ab986db Mon Sep 17 00:00:00 2001 From: Miquel Sabaté Solà Date: Thu, 15 Jan 2026 09:52:16 +0100 Subject: Simplify practice loop by removing exit code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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à --- crates/cli/src/run.rs | 44 ++++++++++++++++---------------------------- 1 file changed, 16 insertions(+), 28 deletions(-) (limited to 'crates') 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) { 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; } } } -- cgit v1.2.3