From 2c484ef392c078fdb5e5513b31433314360f1b99 Mon Sep 17 00:00:00 2001 From: drendog Date: Fri, 12 Dec 2025 02:36:02 +0100 Subject: [PATCH] refactor: make callback registration chainable --- crates/composition/src/selection.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/composition/src/selection.rs b/crates/composition/src/selection.rs index 2bf9794..e255b1d 100644 --- a/crates/composition/src/selection.rs +++ b/crates/composition/src/selection.rs @@ -20,22 +20,24 @@ impl<'a> Selection<'a> { Self { shell, selector } } - pub fn on_callback(&self, callback_name: &str, handler: F) + pub fn on_callback(&mut self, callback_name: &str, handler: F) -> &mut Self where F: Fn(crate::ShellControl) -> R + Clone + 'static, R: crate::IntoValue, { self.shell .on_internal(&self.selector, callback_name, handler); + self } - pub fn on_callback_with_args(&self, callback_name: &str, handler: F) + pub fn on_callback_with_args(&mut self, callback_name: &str, handler: F) -> &mut Self where F: Fn(&[Value], crate::ShellControl) -> R + Clone + 'static, R: crate::IntoValue, { self.shell .on_with_args_internal(&self.selector, callback_name, handler); + self } pub fn with_component(&self, mut f: F)