This commit is contained in:
2024-11-28 22:06:01 +01:00
parent 7e6d99606f
commit 69d2943bb3
3 changed files with 36 additions and 6 deletions
+18 -2
View File
@@ -55,14 +55,23 @@ macro_rules! parse_rsx_param {
osui::parse_rsx_param!($elem, $($rest)*)
};
($elem:expr, $text:expr) => {
($elem:expr, $elem_path:path as $t:ty { $($inner:tt)* } $($rest:tt)*) => {
if $elem.children.is_none() {$elem.children = $crate::Children::Children(Vec::new(), 0)}
if let $crate::Children::Children(children, _) = &mut $elem.children {
children.push(osui::ersx!($elem_path as $t { $($inner)* }));
}
osui::parse_rsx_param!($elem, $($rest)*)
};
($elem:expr, $text:expr) => {
if $elem.children.is_none() {$elem.children = $crate::Children::Text(format!($text))}
};
($elem:expr, $text:expr, $($inner:tt)*) => {
if $elem.children.is_none() {$elem.children = $crate::Children::Text(format!($text, $($inner)*))}
};
($elem:expr, ) => {};
($elem:expr, ) => {};
}
#[macro_export]
@@ -73,6 +82,13 @@ macro_rules! ersx {
$crate::parse_rsx_param!(elem, $($inner)*);
elem as $crate::Element
}};
($elem:path as $t:ty { $($inner:tt)* }) => {{
#[allow(unused_mut)]
let mut elem = paste::paste!{$elem::<$t>}();
$crate::parse_rsx_param!(elem, $($inner)*);
elem as $crate::Element
}};
}
/// Makes a div and puts elements into it