macro_rules! implement_const_unary {
(
@overflowing
name: $name:ident,
method: $method:ident,
string: $str:expr,
patterns: [$([$type:ident, $m_type:ty]),+]
) => { ... };
(
@non-overflowing
name: $name:ident,
method: $method:ident,
patterns: [$([$type:ident, $m_type:ty]),+]
) => { ... };
(
name: $name:ident,
patterns: [$([
t: $type:ident,
l: $logic:expr
]),+]
) => { ... };
}