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) => { ... };
}