diff options
| author | acdenisSK <[email protected]> | 2017-07-27 01:02:43 +0200 |
|---|---|---|
| committer | acdenisSK <[email protected]> | 2017-07-27 02:19:35 +0200 |
| commit | 697f4d8eacdb0bf4233151e91766b956ca8205d5 (patch) | |
| tree | 7042c4e38aa2c4febe4b9258bdf7d93bfb11d8a2 /src | |
| parent | Fix is_own code (diff) | |
| download | serenity-697f4d8eacdb0bf4233151e91766b956ca8205d5.tar.xz serenity-697f4d8eacdb0bf4233151e91766b956ca8205d5.zip | |
Fix condional compilation for `Framework::initialized` when builtin-framework is turned off
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/dispatch.rs | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/src/client/dispatch.rs b/src/client/dispatch.rs index 6c732d7..20ed22b 100644 --- a/src/client/dispatch.rs +++ b/src/client/dispatch.rs @@ -61,6 +61,16 @@ fn context(conn: &Arc<Mutex<Shard>>, Context::new(conn.clone(), data.clone()) } +#[cfg(feature="builtin-framework")] +macro_rules! helper { + ($enabled:block else $disabled:block) => { $enabled } +} + +#[cfg(not(feature="builtin-framework"))] +macro_rules! helper { + ($enabled:block else $disabled:block) => { $disabled } +} + #[cfg(feature="framework")] pub fn dispatch<H: EventHandler + 'static>(event: Event, conn: &Arc<Mutex<Shard>>, @@ -71,25 +81,19 @@ pub fn dispatch<H: EventHandler + 'static>(event: Event, match event { Event::MessageCreate(event) => { let context = context(conn, data); + dispatch_message(context.clone(), + event.message.clone(), + event_handler, + tokio_handle); + if let Some(ref mut framework) = *framework.lock().unwrap() { - if framework.initialized() { - dispatch_message(context.clone(), - event.message.clone(), - event_handler, - tokio_handle); - - framework.dispatch(context, event.message, tokio_handle); - } else { - dispatch_message(context.clone(), - event.message.clone(), - event_handler, - tokio_handle); - } - } else { - dispatch_message(context.clone(), - event.message.clone(), - event_handler, - tokio_handle); + helper! {{ + if framework.initialized() { + framework.dispatch(context, event.message, tokio_handle); + } + } else { + framework.dispatch(context, event.message, tokio_handle); + }} } }, other => handle_event(other, conn, data, event_handler, tokio_handle), |