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

@@ -7,6 +7,7 @@ use crate::{
utils::{dirs, help, logging::Type},
};
use anyhow::{Result, anyhow};
use smartstring::alias::String;
use std::{path::PathBuf, time::Instant};
use tauri_plugin_mihomo::Error as MihomoError;
use tokio::time::sleep;

View File

@@ -8,6 +8,7 @@ use crate::{
utils::logging::Type,
};
use anyhow::Result;
use smartstring::alias::String;
impl CoreManager {
pub async fn start_core(&self) -> Result<()> {
@@ -48,7 +49,7 @@ impl CoreManager {
.ok_or_else(|| "Clash core cannot be None".to_string())?;
if !IVerge::VALID_CLASH_CORES.contains(&core.as_str()) {
return Err(format!("Invalid clash core: {}", core));
return Err(format!("Invalid clash core: {}", core).into());
}
Config::verge().await.draft_mut().clash_core = clash_core;
@@ -61,7 +62,9 @@ impl CoreManager {
.await
.map_err(|e| e.to_string())?;
self.apply_config(run_path).await.map_err(|e| e.to_string())
self.apply_config(run_path)
.await
.map_err(|e| e.to_string().into())
}
async fn prepare_startup(&self) -> Result<()> {

View File

@@ -37,7 +37,7 @@ impl CoreManager {
let (mut rx, child) = app_handle
.shell()
.sidecar(&clash_core)?
.sidecar(clash_core.as_str())?
.args([
"-d",
dirs::path_to_str(&config_dir)?,