Macro impl_constr_wrapper_type

macro_rules! impl_constr_wrapper_type {
    ($name:ident, 0, ($param_name:ident: $param_type:ty, $param_conv:ty)) => { ... };
    ($name:ident, 1,($param_name:ident: $param_type:ty, $param_conv:ty)) => { ... };
    ($name:ident, 2,($param_name:ident: $param_type:ty, $param_conv:ty)) => { ... };
    ($name:ident, $tag:expr, ($param_name:ident: $param_type:ty, $param_conv:ty)) => { ... };
    ($name:ident, 0, [$(($param_name:ident: $param_type:ty, $param_conv:ty)),+ $(,)?]) => { ... };
    ($name:ident, 1, [$(($param_name:ident: $param_type:ty, $param_conv:ty)),+ $(,)?]) => { ... };
    ($name:ident, 2, [$(($param_name:ident: $param_type:ty, $param_conv:ty)),+ $(,)?]) => { ... };
    ($name:ident, $tag:expr, [$(($param_name:ident: $param_type:ty, $param_conv:ty)),+ $(,)?]) => { ... };
}