From ee8f5e29bfce72fa2b2826d29fe65214ff77889c Mon Sep 17 00:00:00 2001 From: sxyazi Date: Fri, 1 Mar 2024 10:36:04 +0800 Subject: [PATCH] Add `Preset::mix` --- yazi-config/src/open/open.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/yazi-config/src/open/open.rs b/yazi-config/src/open/open.rs index 4d71e6ff..a18ebfed 100644 --- a/yazi-config/src/open/open.rs +++ b/yazi-config/src/open/open.rs @@ -5,7 +5,7 @@ use serde::{Deserialize, Deserializer}; use yazi_shared::MIME_DIR; use super::Opener; -use crate::{open::OpenRule, MERGED_YAZI}; +use crate::{open::OpenRule, Preset, MERGED_YAZI}; #[derive(Debug)] pub struct Open { @@ -77,12 +77,15 @@ impl<'de> Deserialize<'de> for Open { append_rules: Vec, } - let outer = Outer::deserialize(deserializer)?; + let mut outer = Outer::deserialize(deserializer)?; + Preset::mix(&mut outer.open.rules, outer.open.prepend_rules, outer.open.append_rules); + let openers = outer .opener .into_iter() .map(|(k, v)| (k, v.into_iter().filter_map(|o| o.take()).collect::>())) .collect(); + Ok(Self { rules: outer.open.rules, openers }) } }