Macro raui_core::widget [−][src]
macro_rules! widget { {()} => { ... }; {[]} => { ... }; ({{$expr:expr}}) => { ... }; ({$expr:expr}) => { ... }; { ( $( #{ $key:expr } )? $( | { $idref:expr } )? $type_id:path $( : {$props:expr} )? $( | {$shared_props:expr} )? $( { $($named_slot_name:ident = $named_slot_widget:tt)* } )? $( |[ $listed_slot_widgets:expr ]| )? $( [ $($listed_slot_widget:tt)* ] )? ) } => { ... }; (@wrap {$expr:expr}) => { ... }; (@wrap $tree:tt) => { ... }; }
Expand description
Create a WidgetNode
struct from a custom widget tree DSL
The widget
macro is primarily used to construct widget trees as the return value of
components.
Example
// You can create [`WidgetNode`]'s and assign them to variables let popup_widget = widget! { (popup: {popup_props}) }; widget! { // parenthesis are used around components and they each _may_ have a key, // props, shared props, listed children, and/or named children. Everything is, // optional. (#{"widget_key"} my_component: {my_component_props} | {my_component_shared_props} { // named children content = (component_1: {component_1_props}) } [ // listed children (component_2: {component_2_props}) (component_3: {component_3_props}) // You can also use `{variable_name}` syntax to expand variables into a widget {popup_widget} ]) }