Bladeren bron

feat: save some fields in the runtime config, close #292

GyDi 2 jaren geleden
bovenliggende
commit
c62dddd5b9
2 gewijzigde bestanden met toevoegingen van 15 en 0 verwijderingen
  1. 13 0
      src-tauri/src/config/runtime.rs
  2. 2 0
      src-tauri/src/feat.rs

+ 13 - 0
src-tauri/src/config/runtime.rs

@@ -15,4 +15,17 @@ impl IRuntime {
     pub fn new() -> Self {
         Self::default()
     }
+
+    // 这里只更改 allow-lan | ipv6 | log-level
+    pub fn patch_config(&mut self, patch: Mapping) {
+        if let Some(config) = self.config.as_mut() {
+            ["allow-lan", "ipv6", "log-level"]
+                .into_iter()
+                .for_each(|key| {
+                    if let Some(value) = patch.get(key).to_owned() {
+                        config.insert(key.into(), value.clone());
+                    }
+                });
+        }
+    }
 }

+ 2 - 0
src-tauri/src/feat.rs

@@ -183,6 +183,8 @@ pub async fn patch_clash(patch: Mapping) -> Result<()> {
             log_err!(handle::Handle::update_systray_part());
         }
 
+        Config::runtime().latest().patch_config(patch);
+
         <Result<()>>::Ok(())
     } {
         Ok(()) => {