From 54f074182d639acd834617ba621f10343b73875b Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Wed, 12 Nov 2025 23:39:58 +0800 Subject: refactor: unified `for` for `set_volume` for code elegance --- src/main.rs | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/src/main.rs b/src/main.rs index 306f909..b1a69ab 100644 --- a/src/main.rs +++ b/src/main.rs @@ -81,23 +81,19 @@ fn set_volume(player: &Player, volume: u8) -> Vec> { / current_volume .abs_diff(volume) .into(); - if current_volume > volume { - for v in (volume..=current_volume).rev() { - let t = Instant::now(); - res.push(player.set_volume(denormal_volume(v))); - intervel = intervel.saturating_sub(t.elapsed()); - if !intervel.is_zero() { - sleep(intervel); - } - } + + let range: Box> = if current_volume > volume { + Box::new((volume..=current_volume).rev()) } else { - for v in current_volume..=volume { - let t = Instant::now(); - res.push(player.set_volume(denormal_volume(v))); - intervel = intervel.saturating_sub(t.elapsed()); - if !intervel.is_zero() { - sleep(intervel); - } + Box::new(current_volume..volume) + }; + + for v in range { + let t = Instant::now(); + res.push(player.set_volume(denormal_volume(v))); + intervel = intervel.saturating_sub(t.elapsed()); + if !intervel.is_zero() { + sleep(intervel); } } res -- cgit v1.2.3