macro_rules! vtable_for_trait {
{
$trait_vis:vis trait $trait_name:ident {
$(fn $method_name:ident(& $(mut $(@$self_mut:tt)?)? self $(, $param_name:ident : $param_type:ty)* $(,)?) $(-> $return_type:ty)?;)*
}
$vtable_vis:vis vtable $vtable_name:ident;
} => { ... };
}