diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 4aa112a6..8e19c814 100755 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -234,4 +234,7 @@ suspicious_operation_groupings = "deny" string_lit_as_bytes = "deny" significant_drop_tightening = "deny" significant_drop_in_scrutinee = "deny" -redundant_clone = "deny" \ No newline at end of file +redundant_clone = "deny" +# option_if_let_else = "deny" // 过于激进,暂时不开启 +needless_pass_by_ref_mut = "deny" +needless_collect = "deny" \ No newline at end of file diff --git a/src-tauri/src/core/timer.rs b/src-tauri/src/core/timer.rs index 59699ab1..c19c43dd 100644 --- a/src-tauri/src/core/timer.rs +++ b/src-tauri/src/core/timer.rs @@ -252,8 +252,8 @@ impl Timer { // Now perform async operations without holding locks for (uid, tid, interval) in operations_to_add { // Re-acquire locks for individual operations - let mut delay_timer = self.delay_timer.write(); - if let Err(e) = self.add_task(&mut delay_timer, uid.clone(), tid, interval) { + let delay_timer = self.delay_timer.write(); + if let Err(e) = self.add_task(&delay_timer, uid.clone(), tid, interval) { logging_error!(Type::Timer, "Failed to add task for uid {}: {}", uid, e); // Rollback on failure - remove from timer_map @@ -370,7 +370,7 @@ impl Timer { /// Add a timer task with better error handling fn add_task( &self, - delay_timer: &mut DelayTimer, + delay_timer: &DelayTimer, uid: String, tid: TaskID, minutes: u64, diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 4f3d6015..1066ad11 100755 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -4,8 +4,8 @@ fn main() { console_subscriber::init(); // Check for --no-tray command line argument - let args: Vec = std::env::args().collect(); - if args.contains(&"--no-tray".into()) { + #[cfg(target_os = "linux")] + if std::env::args().any(|x| x == "--no-tray") { unsafe { std::env::set_var("CLASH_VERGE_DISABLE_TRAY", "1"); } diff --git a/src-tauri/src/utils/server.rs b/src-tauri/src/utils/server.rs index ef2f951b..a704d81f 100644 --- a/src-tauri/src/utils/server.rs +++ b/src-tauri/src/utils/server.rs @@ -31,6 +31,8 @@ pub async fn check_singleton() -> Result<()> { let client = ClientBuilder::new() .timeout(Duration::from_millis(500)) .build()?; + // 需要确保 Send + #[allow(clippy::needless_collect)] let argvs: Vec = std::env::args().collect(); if argvs.len() > 1 { #[cfg(not(target_os = "macos"))]