/// Macro to easily create helper functions that derive a signal using a piece of code. /// /// See [`fn@crate::is_ok`] or [`fn@crate::use_to_string`] as examples. #[macro_export] macro_rules! use_derive_signal { ( $(#[$outer:meta])* $name:ident <$inner_signal_type:tt $(< $( $inner_type_param:tt ),+ >)? $(, $( $type_param:tt $( : $first_bound:tt $(+ $rest_bound:tt)* )? ),+ )? > -> $return_type:tt $($body:tt)+ ) => { $(#[$outer])* pub fn $name(value: V) -> Signal<$return_type> where V: Into)?>> $(, $( $type_param $( : $first_bound $(+ $rest_bound)* )? ),+ )? { let value = value.into(); Signal::derive(move || value.with($($body)+)) } }; }