Macro emit

Source
macro_rules! emit {
    (Key($key:expr)) => { ... };
    (Render) => { ... };
    (Resize($cols:expr, $rows:expr)) => { ... };
    (Topic($topic:expr)) => { ... };
    (Questions($questions:expr)) => { ... };
    (AddQuestions($questionList:expr)) => { ... };
    (AdhocQuestion($question:expr)) => { ... };
    (Popup($lines:expr)) => { ... };
    (Popup($title:expr, $lines:expr)) => { ... };
    (SelectPopup($a: expr)) => { ... };
    (SelectPopup($title:expr, $a: expr)) => { ... };
    (Error($e:expr)) => { ... };
    (Open($e:expr)) => { ... };
    (Input($e:expr)) => { ... };
    (QuestionFilter($e:expr)) => { ... };
    (ProgressUpdate($title:expr, $progress:expr, $total:expr)) => { ... };
    ($event:ident) => { ... };
}