refactor(state/proxy): use Box<Value> for providers_proxies to reduce struct size

- Changed providers_proxies from Value to Box<Value> in CmdProxyState
- Reduces struct size from 32 bytes to 8 bytes, optimizing memory usage
This commit is contained in:
Tunglies
2025-06-06 12:46:58 +08:00
parent 698c47da69
commit 30015dfd67
2 changed files with 10 additions and 8 deletions

View File

@@ -30,7 +30,7 @@ pub async fn get_proxies() -> CmdResult<serde_json::Value> {
let proxies = manager.get_refresh_proxies().await?;
{
let mut state = cmd_proxy_state.lock().unwrap();
state.proxies = proxies;
state.proxies = Box::new(proxies);
state.need_refresh = false;
}
log::debug!(target: "app", "proxies刷新成功");
@@ -40,7 +40,7 @@ pub async fn get_proxies() -> CmdResult<serde_json::Value> {
let state = cmd_proxy_state.lock().unwrap();
state.proxies.clone()
};
Ok(proxies)
Ok(*proxies)
}
#[tauri::command]
@@ -63,7 +63,7 @@ pub async fn get_providers_proxies() -> CmdResult<serde_json::Value> {
let providers = manager.get_providers_proxies().await?;
{
let mut state = cmd_proxy_state.lock().unwrap();
state.providers_proxies = providers;
state.providers_proxies = Box::new(providers);
state.need_refresh = false;
}
log::debug!(target: "app", "providers_proxies刷新成功");
@@ -73,5 +73,5 @@ pub async fn get_providers_proxies() -> CmdResult<serde_json::Value> {
let state = cmd_proxy_state.lock().unwrap();
state.providers_proxies.clone()
};
Ok(providers_proxies)
Ok(*providers_proxies)
}

View File

@@ -1,8 +1,10 @@
use serde_json::Value;
pub struct CmdProxyState {
pub last_refresh_time: std::time::Instant,
pub need_refresh: bool,
pub proxies: serde_json::Value,
pub providers_proxies: serde_json::Value,
pub proxies: Box<Value>,
pub providers_proxies: Box<Value>,
}
impl Default for CmdProxyState {
@@ -10,8 +12,8 @@ impl Default for CmdProxyState {
Self {
last_refresh_time: std::time::Instant::now(),
need_refresh: true,
proxies: serde_json::Value::Null,
providers_proxies: serde_json::Value::Null,
proxies: Box::new(Value::Null),
providers_proxies: Box::new(Value::Null),
}
}
}