From 651513c826b78885fb39400538f62c6f400e7b5e Mon Sep 17 00:00:00 2001 From: Tunglies <77394545+Tunglies@users.noreply.github.com> Date: Thu, 6 Nov 2025 10:26:40 +0800 Subject: [PATCH] refactor: optimize error message handling and improve cloning in various functions --- src-tauri/Cargo.toml | 3 ++- src-tauri/src/cmd/profile.rs | 14 ++++---------- src-tauri/src/enhance/merge.rs | 2 +- src-tauri/src/enhance/mod.rs | 2 +- src-tauri/src/enhance/script.rs | 2 +- src-tauri/src/utils/network.rs | 7 ++----- src-tauri/src/utils/resolve/scheme.rs | 3 +-- 7 files changed, 12 insertions(+), 21 deletions(-) diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 51b5811e6..4aa112a68 100755 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -233,4 +233,5 @@ trait_duplication_in_bounds = "deny" suspicious_operation_groupings = "deny" string_lit_as_bytes = "deny" significant_drop_tightening = "deny" -significant_drop_in_scrutinee = "deny" \ No newline at end of file +significant_drop_in_scrutinee = "deny" +redundant_clone = "deny" \ No newline at end of file diff --git a/src-tauri/src/cmd/profile.rs b/src-tauri/src/cmd/profile.rs index 15faa204b..72bba7499 100644 --- a/src-tauri/src/cmd/profile.rs +++ b/src-tauri/src/cmd/profile.rs @@ -244,7 +244,7 @@ async fn validate_new_profile(new_profile: &String) -> Result<(), ()> { ); handle::Handle::notice_message( "config_validate::yaml_syntax_error", - error_msg.clone(), + error_msg, ); Err(()) } @@ -253,7 +253,7 @@ async fn validate_new_profile(new_profile: &String) -> Result<(), ()> { logging!(error, Type::Cmd, "{}", error_msg); handle::Handle::notice_message( "config_validate::yaml_parse_error", - error_msg.clone(), + error_msg, ); Err(()) } @@ -262,19 +262,13 @@ async fn validate_new_profile(new_profile: &String) -> Result<(), ()> { Ok(Err(err)) => { let error_msg = format!("无法读取目标配置文件: {err}"); logging!(error, Type::Cmd, "{}", error_msg); - handle::Handle::notice_message( - "config_validate::file_read_error", - error_msg.clone(), - ); + handle::Handle::notice_message("config_validate::file_read_error", error_msg); Err(()) } Err(_) => { let error_msg = "读取配置文件超时(5秒)".to_string(); logging!(error, Type::Cmd, "{}", error_msg); - handle::Handle::notice_message( - "config_validate::file_read_timeout", - error_msg.clone(), - ); + handle::Handle::notice_message("config_validate::file_read_timeout", error_msg); Err(()) } } diff --git a/src-tauri/src/enhance/merge.rs b/src-tauri/src/enhance/merge.rs index 3d0e4bf92..b93829e41 100644 --- a/src-tauri/src/enhance/merge.rs +++ b/src-tauri/src/enhance/merge.rs @@ -16,7 +16,7 @@ fn deep_merge(a: &mut Value, b: &Value) { pub fn use_merge(merge: Mapping, config: Mapping) -> Mapping { let mut config = Value::from(config); - let merge = use_lowercase(merge.clone()); + let merge = use_lowercase(merge); deep_merge(&mut config, &Value::from(merge)); diff --git a/src-tauri/src/enhance/mod.rs b/src-tauri/src/enhance/mod.rs index f2e5a191a..7699ca133 100644 --- a/src-tauri/src/enhance/mod.rs +++ b/src-tauri/src/enhance/mod.rs @@ -330,7 +330,7 @@ fn process_global_items( if let ChainType::Script(script) = global_script.data { let mut logs = vec![]; - match use_script(script, config.to_owned(), profile_name.to_owned()) { + match use_script(script, config.to_owned(), profile_name) { Ok((res_config, res_logs)) => { exists_keys.extend(use_keys(&res_config)); config = res_config; diff --git a/src-tauri/src/enhance/script.rs b/src-tauri/src/enhance/script.rs index 44a39d14a..799c19dc3 100644 --- a/src-tauri/src/enhance/script.rs +++ b/src-tauri/src/enhance/script.rs @@ -62,7 +62,7 @@ pub fn use_script( });"#, )); - let config = use_lowercase(config.clone()); + let config = use_lowercase(config); let config_str = serde_json::to_string(&config)?; // 仅处理 name 参数中的特殊字符 diff --git a/src-tauri/src/utils/network.rs b/src-tauri/src/utils/network.rs index f9926c481..fe18ca835 100644 --- a/src-tauri/src/utils/network.rs +++ b/src-tauri/src/utils/network.rs @@ -116,18 +116,15 @@ impl NetworkManager { accept_invalid_certs: bool, timeout_secs: Option, ) -> Result { - let proxy_uri_clone = proxy_uri.clone(); - let headers_clone = default_headers.clone(); - { let mut builder = HttpClient::builder(); - builder = match proxy_uri_clone { + builder = match proxy_uri { Some(uri) => builder.proxy(Some(uri)), None => builder.proxy(None), }; - for (name, value) in headers_clone.iter() { + for (name, value) in default_headers.iter() { builder = builder.default_header(name, value); } diff --git a/src-tauri/src/utils/resolve/scheme.rs b/src-tauri/src/utils/resolve/scheme.rs index 109fd14d5..fc6c63d90 100644 --- a/src-tauri/src/utils/resolve/scheme.rs +++ b/src-tauri/src/utils/resolve/scheme.rs @@ -35,7 +35,6 @@ pub(super) async fn resolve_scheme(param: &str) -> Result<()> { .query_pairs() .find(|(key, _)| key == "name") .map(|(_, value)| value.into_owned().into()); - let name = name_owned.to_owned(); let url_param = if let Some(query) = link_parsed.query() { let prefix = "url="; @@ -48,7 +47,7 @@ pub(super) async fn resolve_scheme(param: &str) -> Result<()> { } else { None }; - (url_param, name) + (url_param, name_owned) } else { (None, None) };