Macro funkjon
Source macro_rules! funkjon {
(
$ident:ident ::$(<
$($generic:ident $(: $first_partial:ident
$(:: $($first_residual:ident $(::)?)*)?
$( $( +
$partial:ident
$(:: $($residual:ident $(::)?)*)?
)+ )?
)? ),*
> ::)? $($param:ident),* $block:block
as ( $($ty:ty),* ) -> Unit
$(where $($clause_ident:ident :
$first_clause_partial:ident
$(:: $($first_clause_residual:ident $(::)?)*)?
$( $(+
$clause_partial:ident
$(:: $($clause_residual:ident $(::)?)*)?
)+ )?
),* $(,)?)?
) => { ... };
(
$ident:ident ::$(<
$($generic:ident $(: $first_partial:ident
$(:: $($first_residual:ident $(::)?)*)?
$( $( +
$partial:ident
$(:: $($residual:ident $(::)?)*)?
)+ )?
)? ),*
> ::)? $($param:ident),* $block:block
as ( $($ty:ty),* ) -> $output:ty
$(where $($clause_ident:ident :
$first_clause_partial:ident
$(:: $($first_clause_residual:ident $(::)?)*)?
$( $(+
$clause_partial:ident
$(:: $($clause_residual:ident $(::)?)*)?
)+ )?
),* $(,)?)?
) => { ... };
}