macro_rules! widget { ( $name:ident<$state:ty>, $widget_type:ty $(, $widget_args:expr)*; $(, $update_hook:expr)? ) => { ... }; }