From a126d98f3c6f0bff2199901c3e760d1157df7717 Mon Sep 17 00:00:00 2001 From: i do not exist Date: Sat, 22 Aug 2026 14:11:12 +0300 Subject: [PATCH] 1e... --- src/config.rs | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/src/config.rs b/src/config.rs index 560d7d4e..5a13144c 100644 --- a/src/config.rs +++ b/src/config.rs @@ -46,15 +46,12 @@ pub fn config_add <'a> (config: &'a Config, dsl: &'a str) -> UsuallyRef<'a, &'a pub fn modes_add <'a> (modes: &Modes, expr: &'a str) -> UsuallyRef<'a, ()> { let name = expr.head()?.ok_or("mode: missing name")?; let body = expr.tail()?.ok_or("mode: missing body")?; - modes.0.write().unwrap().insert( - name.into(), - Arc::new(body.each( - Mode::default(), - move|mut mode: Mode, item: &str|{ - mode_add(&mut mode, item)?; - Ok(mode) - } - )?)); + let mode = Mode::default(); + let mode = body.each(mode, move|mut submode: Mode, item: &str|{ + mode_add(&mut submode, &item); + Ok(submode) + })?; + modes.0.write().unwrap().insert(name.into(), Arc::new(mode)); Ok(()) } @@ -78,15 +75,15 @@ pub fn mode_add <'a> (mode: &'a mut Mode, dsl: &'a str) -> PerhapsRef<'a, &'a mu let tail = expr.tail()?.map(|x|x.trim()).unwrap_or(""); match head { "mode" => { - let head = tail.head()?.ok_or("mode: missing name")?; - let body = tail.tail()?.ok_or("mode: missing body")?; - let modes = mode.modes.clone(); + let name = tail.head()?.ok_or("submode: missing name")?; + let body = tail.tail()?.ok_or("submode: missing body")?; let submode = Mode::default(); let submode = body.each(submode, move|mut submode: Mode, item: &str|{ mode_add(&mut submode, &item); Ok(submode) })?; - modes.0.write().unwrap().insert(head.into(), Arc::new(submode)); + let modes = mode.modes.clone(); + modes.0.write().unwrap().insert(name.into(), Arc::new(submode)); mode }, "keys" => { @@ -119,7 +116,7 @@ pub fn load_view <'a> (views: &Views, expr: &'a str,) -> UsuallyRef<'a, ()> { Ok(()) } -pub fn load_bind <'a> (binds: &Binds, expr: &'a str) -> Usually<()> { +pub fn load_bind <'a> (binds: &Binds, expr: &'a str) -> UsuallyRef<'a, ()> { let name = expr.head()?.ok_or("bind: missing name")?; let body = expr.tail()?.ok_or("bind: missing body")?; binds.write().unwrap().insert(name.into(), {