Macro Wrap
Source macro_rules! Wrap {
($origin:ident, $wrapper:ident
$(, derive = { $($derive:path),* })?) => { ... };
($origin:ident<
$($generic:ident $($(:)?$(+)?$gconstraints: path)*),*
>, $wrapper:ident
$(, derive = { $($derive:path),* })?) => { ... };
($origin:ident<
$($lifetime:lifetime $($(:)?$(+)?$lconstraints: lifetime)*),*>, $wrapper:ident
$(, derive = { $($derive:path),* })?) => { ... };
($origin:ident<
$($lifetime:lifetime $($(:)?$(+)?$lconstraints: lifetime)*),*,
$($generic:ident $($(:)?$(+)?$gconstraints: path)*),*
>, $wrapper:ident
$(, derive = { $($derive:path),* })?) => { ... };
}