Cant get this to work:
enum Event {
Before,
Connect(usize),
Close,
}
macro_rules! callback_gen {
(Before => $code:block) => { Event::Before => $code, };
(Connect => $code:block) => { Event::Connect(response) => $code, };
(Close => $code:block) => { Event::Close => $code, };
($($event:ident => $code:block),+) => {
|incoming_event| {
match incoming_event {
$(callback_gen!($event => $code))*
}
}
};
}
fn main() {
let cb = callback_gen!(
Before => {println!("before")},
Connect => {println!("connect")},
Close => {println!("close")}
);
cb(Event::Before);
}