From 171bd6b327eabdd04c27f4c527c74bc628134a39 Mon Sep 17 00:00:00 2001 From: MystiPanda Date: Sun, 30 Jun 2024 07:37:52 +0800 Subject: [PATCH] fix: delete logic --- src-tauri/src/enhance/seq.rs | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src-tauri/src/enhance/seq.rs b/src-tauri/src/enhance/seq.rs index 51c74f16..c442eea4 100644 --- a/src-tauri/src/enhance/seq.rs +++ b/src-tauri/src/enhance/seq.rs @@ -24,10 +24,29 @@ pub fn use_seq(seq_map: SeqMap, config: Mapping, name: &str) -> Mapping { for item in append { seq.push(item); } - + let mut delete_names = Vec::new(); for item in delete { - seq.retain(|x| x != &item); + let item = item.clone(); + if let Some(name) = if item.is_string() { + Some(item) + } else { + item.get("name").map(|y| y.clone()) + } { + delete_names.push(name.clone()); + } } + seq.retain(|x| { + if let Some(x_name) = if x.is_string() { + Some(x) + } else { + x.get("name") + } { + !delete_names.contains(&x_name) + } else { + true + } + }); + let mut config = config.clone(); config.insert(Value::from(name), Value::from(seq)); return config;