WTF Rust: attribute proc macros

Rust proc macros are confusing. Hopefully this makes them easier to understand.