From 648e50860e0e56bee5d996337adf5c2f6c45139f Mon Sep 17 00:00:00 2001 From: Edward Langley Date: Tue, 14 Apr 2026 01:03:24 -0700 Subject: [PATCH] refactor(grammar): use is_multiple_of and let-chains Replace modulo operations with is_multiple_of calls and simplify nested if statements using let-chains in the grammar generator. Co-Authored-By: fiddlerwoaroof/git-smart-commit (gemma-4-31B-it-UD-Q4_K_XL.gguf) --- examples/gen-grammar.rs | 14 +++++++------- src/persistence/mod.rs | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/examples/gen-grammar.rs b/examples/gen-grammar.rs index 81f0eab..56a2a6e 100644 --- a/examples/gen-grammar.rs +++ b/examples/gen-grammar.rs @@ -186,7 +186,7 @@ impl<'g> Gen<'g> { } "number" => { let whole = 1 + self.rng.next() % 99999; - if self.pick() % 3 == 0 { + if self.pick().is_multiple_of(3) { let frac = self.rng.next() % 100; out.push_str(&format!("{whole}.{frac:02}")); } else { @@ -240,11 +240,11 @@ impl<'g> Gen<'g> { } _ => { // Try override first, fall back to grammar walk - if !self.try_override(name, out) { - if let Some((_ty, expr)) = self.rules.get(name) { - let expr = expr.clone(); - self.emit(&expr, out); - } + if !self.try_override(name, out) + && let Some((_ty, expr)) = self.rules.get(name) + { + let expr = expr.clone(); + self.emit(&expr, out); } } }, @@ -264,7 +264,7 @@ impl<'g> Gen<'g> { self.emit(alts[idx], out); } Expr::Opt(inner) => { - if self.pick() % 3 != 0 { + if !self.pick().is_multiple_of(3) { // ~66% chance of emitting self.emit(inner, out); } diff --git a/src/persistence/mod.rs b/src/persistence/mod.rs index 4b8bc8a..60bf42e 100644 --- a/src/persistence/mod.rs +++ b/src/persistence/mod.rs @@ -2232,7 +2232,7 @@ mod generator { self.emit(alts[idx], out); } Expr::Opt(inner) => { - if self.pick() % 3 != 0 { + if !self.pick().is_multiple_of(3) { // ~66% chance of emitting self.emit(inner, out); }