summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-03-04 10:14:38 +0800
committer魏曹先生 <1992414357@qq.com>2026-03-04 10:14:38 +0800
commit68c27b90f8d6690e662ad3a2441583a5c810e060 (patch)
tree9887a124a93850b2b95be70254b8977fd1158ad3
parent05b7b483056902a07f83bc14f443ab59ce1471d8 (diff)
Bump version to 0.1.20.1.2
- Add increase/reduce functions (#1)
-rw-r--r--Cargo.lock2
-rw-r--r--Cargo.toml2
-rw-r--r--src/progress.rs38
3 files changed, 39 insertions, 3 deletions
diff --git a/Cargo.lock b/Cargo.lock
index b4be7da..c92d0a5 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -32,7 +32,7 @@ dependencies = [
[[package]]
name = "just_progress"
-version = "0.1.1"
+version = "0.1.2"
dependencies = [
"tokio",
]
diff --git a/Cargo.toml b/Cargo.toml
index 38d9fa4..ea26462 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -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);
}