perf: utilize smartstring for string handling (#5149)

* perf: utilize smartstring for string handling

- Updated various modules to replace standard String with smartstring::alias::String for improved performance and memory efficiency.
- Adjusted string manipulations and conversions throughout the codebase to ensure compatibility with the new smartstring type.
- Enhanced readability and maintainability by using `.into()` for conversions where applicable.
- Ensured that all instances of string handling in configuration, logging, and network management leverage the benefits of smartstring.

* fix: replace wrap_err with stringify_err for better error handling in UWP tool invocation

* refactor: update import path for StringifyErr and adjust string handling in sysopt

* fix: correct import path for CmdResult in UWP module

* fix: update argument type for execute_sysproxy_command to use std::string::String

* fix: add missing CmdResult import in UWP platform module

* fix: improve string handling and error messaging across multiple files

* style: format code for improved readability and consistency across multiple files

* fix: remove unused file
This commit is contained in:
Tunglies
2025-10-22 16:25:44 +08:00
committed by GitHub
parent fe96a7030a
commit a05ea64bcd
50 changed files with 361 additions and 272 deletions

View File

@@ -1,6 +1,7 @@
use super::use_lowercase;
use anyhow::{Error, Result};
use serde_yaml_ng::Mapping;
use smartstring::alias::String;
pub fn use_script(
script: String,
@@ -44,7 +45,7 @@ pub fn use_script(
)
})?;
let mut out = copy_outputs.borrow_mut();
out.push((level, data));
out.push((level.into(), data.into()));
Ok(JsValue::undefined())
},
),
@@ -94,7 +95,7 @@ pub fn use_script(
match res {
Ok(config) => Ok((use_lowercase(config), out.to_vec())),
Err(err) => {
out.push(("exception".into(), err.to_string()));
out.push(("exception".into(), err.to_string().into()));
Ok((config, out.to_vec()))
}
}
@@ -121,7 +122,7 @@ fn strip_outer_quotes(s: &str) -> &str {
// 转义单引号和反斜杠用于单引号包裹的JavaScript字符串
fn escape_js_string_for_single_quote(s: &str) -> String {
s.replace('\\', "\\\\").replace('\'', "\\'")
s.replace('\\', "\\\\").replace('\'', "\\'").into()
}
#[test]
@@ -150,7 +151,7 @@ fn test_script() {
";
let config = serde_yaml_ng::from_str(config).expect("Failed to parse test config YAML");
let (config, results) = use_script(script.into(), config, "".to_string())
let (config, results) = use_script(script.into(), config, "".into())
.expect("Script execution should succeed in test");
let _ = serde_yaml_ng::to_string(&config).expect("Failed to serialize config to YAML");