diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 44f8bd8..cd67386 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -589,6 +589,25 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "crossbeam-deque" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-utils" version = "0.8.21" @@ -894,6 +913,12 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" +[[package]] +name = "either" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" + [[package]] name = "embed-resource" version = "3.0.9" @@ -2932,6 +2957,26 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" +[[package]] +name = "rayon" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + [[package]] name = "redox_syscall" version = "0.5.18" @@ -3710,6 +3755,7 @@ name = "summarum" version = "1.2.0" dependencies = [ "chrono", + "rayon", "reqwest 0.12.28", "serde", "serde_json", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index c71d21f..b008c06 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -20,6 +20,7 @@ serde = { version = "1", features = ["derive"] } serde_json = "1" reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } chrono = "0.4" +rayon = "1.12.0" [profile.release] strip = true diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 4fd3982..fd2e88c 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -436,9 +436,12 @@ fn run_backups(app: AppHandle, dir: Option, retention_days: u32) -> Resu .collect(); snaps.sort(); if snaps.len() > SNAPSHOT_KEEP { - for old in &snaps[..snaps.len() - SNAPSHOT_KEEP] { - fs::remove_file(old).ok(); - } + use rayon::prelude::*; + snaps[..snaps.len() - SNAPSHOT_KEEP] + .par_iter() + .for_each(|old| { + fs::remove_file(old).ok(); + }); } // prune the deleted-sheets bin by age