diff options
| author | Austin Hellyer <[email protected]> | 2016-11-19 08:48:58 -0800 |
|---|---|---|
| committer | Austin Hellyer <[email protected]> | 2016-11-19 08:48:58 -0800 |
| commit | 7f24c706b36e8815c1d4f47de5257466cc281571 (patch) | |
| tree | 064653c56fc42d7fdac963120c4206b4151caa76 /src/utils | |
| parent | Don't send embed on message edits if empty (diff) | |
| download | serenity-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.rs | 128 |
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"))] |