macro_rules! generate_attr {
(enum $name:tt ; $($values:tt),+) => { ... };
(enum $name:tt for $($owners:tt),+; $($values:tt),+) => { ... };
(enum $name:tt for $($owners:tt),+; $($values:tt),+;$default:tt ) => { ... };
(struct $name:tt for $($owners:tt),+; $ty:tt) => { ... };
(struct $name:tt for $($owners:tt),+; $ty:tt; $default:expr) => { ... };
}