diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-03-04 10:14:38 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-03-04 10:14:38 +0800 |
| commit | 68c27b90f8d6690e662ad3a2441583a5c810e060 (patch) | |
| tree | 9887a124a93850b2b95be70254b8977fd1158ad3 | |
| parent | 05b7b483056902a07f83bc14f443ab59ce1471d8 (diff) | |
Bump version to 0.1.20.1.2
- Add increase/reduce functions (#1)
| -rw-r--r-- | Cargo.lock | 2 | ||||
| -rw-r--r-- | Cargo.toml | 2 | ||||
| -rw-r--r-- | src/progress.rs | 38 |
3 files changed, 39 insertions, 3 deletions
@@ -32,7 +32,7 @@ dependencies = [ [[package]] name = "just_progress" -version = "0.1.1" +version = "0.1.2" dependencies = [ "tokio", ] @@ -2,7 +2,7 @@ name = "just_progress" authors = ["Weicao-CatilGrass"] description = "Just a progress display tool" -version = "0.1.1" +version = "0.1.2" edition = "2024" readme = "README.md" 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); } |
