macro_rules! NewtypeNeg {
    ((* $(where $($bound:tt)*)?) $vis:vis struct $name:ident $($token:tt)+) => { ... };
    (($(where $($bound:tt)*)?) $vis:vis struct $name:ident $($token:tt)+) => { ... };
    ((& $($a:lifetime)? self $(where $($bound:tt)*)?) $vis:vis struct $name:ident $($token:tt)+) => { ... };
}
Expand description

Derives Neg trait implementation for newtype wrappers (i.e. tuple structs with a single non-zero sized element).

Accepts input in any of following forms:

(
    *
    $(where $($bound:tt)*)?
)
$vis:vis struct $name:ident $(<$generics> $(where $where_clause)?)? (
    $(pub)? $t0:ty $(, $(pub)? $phantom:ty)* $(,)?
);
(
    $(where $($bound:tt)*)?
)
$vis:vis struct $name:ident $(<$generics> $(where $where_clause)?)? (
    $(pub)? $t0:ty $(, $(pub)? $phantom:ty)* $(,)?
);
(
    & $($a:lifetime)? self
    $(where $($bound:tt)*)?
)
$vis:vis struct $name:ident $(<$generics> $(where $where_clause)?)? (
    $(pub)? $t0:ty $(, $(pub)? $phantom:ty)* $(,)?
);