Derive Macro Protocol

Source
#[derive(Protocol)]