mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-01-29 00:35:38 +08:00
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:
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user