aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoracdenisSK <[email protected]>2017-07-27 01:02:43 +0200
committeracdenisSK <[email protected]>2017-07-27 02:19:35 +0200
commit697f4d8eacdb0bf4233151e91766b956ca8205d5 (patch)
tree7042c4e38aa2c4febe4b9258bdf7d93bfb11d8a2 /src
parentFix is_own code (diff)
downloadserenity-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.rs40
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),