From 68c27b90f8d6690e662ad3a2441583a5c810e060 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Wed, 4 Mar 2026 10:14:38 +0800 Subject: Bump version to 0.1.2 - Add increase/reduce functions (#1) --- src/progress.rs | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/progress.rs b/src/progress.rs index a5509ef..169dca5 100644 --- a/src/progress.rs +++ b/src/progress.rs @@ -137,6 +137,42 @@ pub fn complete(name: &str) { update_progress(name, 1.); } +/// Increase +/// +/// Increase a progress item's value by a specified amount (clamped to 1.0) +pub fn increase(name: &str, amount: f32) { + let Some(center) = PROGRESS_CENTER.get() else { + return; + }; + let mut state = center.tx.borrow().clone(); + let entry = state + .entry(name.to_string()) + .or_insert_with(|| ProgressState { + progress: 0.0, + info: ProgressInfo::default(), + }); + entry.progress = (entry.progress + amount).clamp(0.0, 1.0); + let _ = center.tx.send(state); +} + +/// Reduce +/// +/// Reduce a progress item's value by a specified amount (clamped to 0.0) +pub fn reduce(name: &str, amount: f32) { + let Some(center) = PROGRESS_CENTER.get() else { + return; + }; + let mut state = center.tx.borrow().clone(); + let entry = state + .entry(name.to_string()) + .or_insert_with(|| ProgressState { + progress: 0.0, + info: ProgressInfo::default(), + }); + entry.progress = (entry.progress - amount).clamp(0.0, 1.0); + let _ = center.tx.send(state); +} + /// Clear all /// /// Send a message to clear all items, ensuring no progress remains @@ -177,7 +213,7 @@ pub fn update_progress(name: &str, progress: f32) { progress: 0.0, info: ProgressInfo::default(), }); - entry.progress = progress; + entry.progress = progress.clamp(0.0, 1.0); let _ = center.tx.send(state); } -- cgit