slightly improved state management

This commit is contained in:
2024-12-18 23:43:17 +01:00
parent 1c67eaa3a2
commit 97141eae77
4 changed files with 92 additions and 47 deletions
+8 -5
View File
@@ -40,12 +40,15 @@ macro_rules! parse_rsx_param {
osui::parse_rsx_param!($elem, $($($rest)*)?);
};
($elem:expr, $($k:ident).+: fn($($params:tt)*) @$($v:ident),* $code:block $(, $($rest:tt)*)?) => {
($elem:expr, $($k:ident).+: fn($($params:tt)*) $(@$($v:ident),+)? $code:block $(, $($rest:tt)*)?) => {
$elem.$($k).+ = $crate::Handler::new({
$(
let $v = $v.copy_state();
)*
move |$($params)*| $code
$($(
#[allow(unused_mut)]
let mut $v = $v.clone();
)+)?
move |$($params)*| {
$code
}
});
osui::parse_rsx_param!($elem, $($($rest)*)?);
};