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

View File

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