macro_rules! wdf_element {
(
name: $name:ident<T>,
params: { $($pname:ident: $ptype:ty),* },
state: { $($sname:ident: $stype:ty),* },
port_resistance: |$pr_self:ident| $pr:tt,
scattering: |$p:ident, $a:ident| $scatter:tt,
update: |$u:ident| $update:tt,
reset: |$r:ident| $reset:tt,
) => { ... };
}