aboutsummaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorAustin Hellyer <[email protected]>2016-11-19 08:48:58 -0800
committerAustin Hellyer <[email protected]>2016-11-19 08:48:58 -0800
commit7f24c706b36e8815c1d4f47de5257466cc281571 (patch)
tree064653c56fc42d7fdac963120c4206b4151caa76 /src/utils
parentDon't send embed on message edits if empty (diff)
downloadserenity-7f24c706b36e8815c1d4f47de5257466cc281571.tar.xz
serenity-7f24c706b36e8815c1d4f47de5257466cc281571.zip
Fix cond. compile across multiple feature targets
Fixes conditional compilation across multiple combinations of feature targets, where it was assumed a second feature would be enabled by something that requires a feature to be enabled. This also fixes an EOF compilation error on no-feature builds.
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/macros.rs128
1 files changed, 57 insertions, 71 deletions
diff --git a/src/utils/macros.rs b/src/utils/macros.rs
index a0b4f1c..cdcbbf2 100644
--- a/src/utils/macros.rs
+++ b/src/utils/macros.rs
@@ -49,23 +49,22 @@ macro_rules! status_concat {
}
// Enable/disable check for extras
+#[cfg(feature = "extras")]
macro_rules! feature_extras {
- ($enabled:block) => {
+ ($enabled:block else $disabled:block) => {
{
feature_extras_enabled! {{
$enabled
}}
}
- };
+ }
+}
+
+#[cfg(not(feature = "extras"))]
+macro_rules! feature_extras {
($enabled:block else $disabled:block) => {
{
- feature_extras_enabled! {{
- $enabled
- }}
-
- feature_extras_disabled! {{
- $disabled
- }}
+ $disabled
}
};
}
@@ -81,12 +80,12 @@ macro_rules! feature_extras_enabled {
#[cfg(not(feature = "extras"))]
macro_rules! feature_extras_enabled {
- ($enabled:block) => {}
+ ($enabled:block) => {{}}
}
#[cfg(feature = "extras")]
macro_rules! feature_extras_disabled {
- ($disabled:block) => {}
+ ($disabled:block) => {{}}
}
#[cfg(not(feature = "extras"))]
@@ -99,25 +98,22 @@ macro_rules! feature_extras_disabled {
}
// Enable/disable check for framework
+#[cfg(feature = "framework")]
macro_rules! feature_framework {
- ($enabled:block) => {
+ ($enabled:block else $disabled:block) => {
{
- feature_framework_enabled! {{
- $enabled
- }}
+ $enabled
}
- };
+ }
+}
+
+#[cfg(not(feature = "framework"))]
+macro_rules! feature_framework {
($enabled:block else $disabled:block) => {
{
- feature_framework_enabled! {{
- $enabled
- }}
-
- feature_framework_disabled! {{
- $disabled
- }}
+ $disabled
}
- };
+ }
}
#[cfg(feature = "framework")]
@@ -131,12 +127,12 @@ macro_rules! feature_framework_enabled {
#[cfg(not(feature = "framework"))]
macro_rules! feature_framework_enabled {
- ($enabled:block) => {}
+ ($enabled:block) => {{}}
}
#[cfg(feature = "framework")]
macro_rules! feature_framework_disabled {
- ($disabled:block) => {}
+ ($disabled:block) => {{}}
}
#[cfg(not(feature = "framework"))]
@@ -149,25 +145,22 @@ macro_rules! feature_framework_disabled {
}
// Enable/disable check for methods
+#[cfg(feature = "methods")]
macro_rules! feature_methods {
- ($enabled:block) => {
+ ($enabled:block else $disabled:block) => {
{
- feature_methods_enabled! {{
- $enabled
- }}
+ $enabled
}
- };
+ }
+}
+
+#[cfg(not(feature = "methods"))]
+macro_rules! feature_methods {
($enabled:block else $disabled:block) => {
{
- feature_methods_enabled! {{
- $enabled
- }}
-
- feature_methods_disabled! {{
- $disabled
- }}
+ $disabled
}
- };
+ }
}
#[cfg(feature = "methods")]
@@ -181,12 +174,12 @@ macro_rules! feature_methods_enabled {
#[cfg(not(feature = "methods"))]
macro_rules! feature_methods_enabled {
- ($enabled:block) => {}
+ ($enabled:block) => {{}}
}
#[cfg(feature = "methods")]
macro_rules! feature_methods_disabled {
- ($disabled:block) => {}
+ ($disabled:block) => {{}}
}
#[cfg(not(feature = "methods"))]
@@ -201,24 +194,20 @@ macro_rules! feature_methods_disabled {
// Enable/disable check for state
#[cfg(feature = "state")]
macro_rules! feature_state {
- ($enabled:block) => {
+ ($enabled:block else $disabled:block) => {
{
- feature_state_enabled! {{
- $enabled
- }}
+ $enabled
}
- };
+ }
+}
+
+#[cfg(not(feature = "state"))]
+macro_rules! feature_state {
($enabled:block else $disabled:block) => {
{
- feature_state_enabled! {{
- $enabled
- }}
-
- feature_state_disabled! {{
- $disabled
- }}
+ $disabled
}
- };
+ }
}
#[cfg(feature = "state")]
@@ -232,12 +221,12 @@ macro_rules! feature_state_enabled {
#[cfg(not(feature = "state"))]
macro_rules! feature_state_enabled {
- ($enabled:block) => {}
+ ($enabled:block) => {{}}
}
#[cfg(feature = "state")]
macro_rules! feature_state_disabled {
- ($disabled:block) => {}
+ ($disabled:block) => {{}}
}
#[cfg(not(feature = "state"))]
@@ -250,25 +239,22 @@ macro_rules! feature_state_disabled {
}
// Enable/disable check for voice
+#[cfg(feature = "voice")]
macro_rules! feature_voice {
- ($enabled:block) => {
+ ($enabled:block else $disabled:block) => {
{
- feature_voice_enabled! {{
- $enabled
- }}
+ $enabled
}
- };
+ }
+}
+
+#[cfg(not(feature = "voice"))]
+macro_rules! feature_voice {
($enabled:block else $disabled:block) => {
{
- feature_voice_enabled! {{
- $enabled
- }}
-
- feature_voice_disabled! {{
- $disabled
- }}
+ $disabled
}
- };
+ }
}
#[cfg(feature = "voice")]
@@ -282,12 +268,12 @@ macro_rules! feature_voice_enabled {
#[cfg(not(feature = "voice"))]
macro_rules! feature_voice_enabled {
- ($enabled:block) => {}
+ ($enabled:block) => {{}}
}
#[cfg(feature = "voice")]
macro_rules! feature_voice_disabled {
- ($disabled:block) => {}
+ ($disabled:block) => {{}}
}
#[cfg(not(feature = "voice"))]