From 9ef110ec52527e0018c979b0c44a52c98dceafdb Mon Sep 17 00:00:00 2001 From: Austin Hellyer Date: Mon, 28 Nov 2016 17:51:58 -0800 Subject: Optimize for cached, non-method compiles --- src/model/channel.rs | 10 ++++++---- src/model/guild.rs | 4 ++-- src/model/utils.rs | 7 ------- 3 files changed, 8 insertions(+), 13 deletions(-) (limited to 'src/model') diff --git a/src/model/channel.rs b/src/model/channel.rs index a95b1f3..33e6044 100644 --- a/src/model/channel.rs +++ b/src/model/channel.rs @@ -833,11 +833,13 @@ impl GuildChannel { #[cfg(feature = "methods")] pub fn create_invite(&self, f: F) -> Result where F: FnOnce(CreateInvite) -> CreateInvite { - let req = permissions::CREATE_INVITE; + feature_cache_enabled! {{ + let req = permissions::CREATE_INVITE; - if !try!(utils::user_has_perms(self.id, req)) { - return Err(Error::Client(ClientError::InvalidPermissions(req))); - } + if !try!(utils::user_has_perms(self.id, req)) { + return Err(Error::Client(ClientError::InvalidPermissions(req))); + } + }} let map = f(CreateInvite::default()).0.build(); diff --git a/src/model/guild.rs b/src/model/guild.rs index 1fe3075..4869e86 100644 --- a/src/model/guild.rs +++ b/src/model/guild.rs @@ -25,7 +25,7 @@ use ::utils::builder::{EditGuild, EditMember, EditRole}; #[cfg(feature = "methods")] use ::client::rest; -#[cfg(feature = "cache")] +#[cfg(all(feature = "cache", feature = "methods"))] use ::client::CACHE; impl From for GuildContainer { @@ -165,7 +165,7 @@ impl PartialGuild { } impl Guild { - #[cfg(feature = "cache")] + #[cfg(all(feature = "cache", feature = "methods"))] fn has_perms(&self, mut permissions: Permissions) -> Result { let member = match self.get_member(CACHE.read().unwrap().user.id) { Some(member) => member, diff --git a/src/model/utils.rs b/src/model/utils.rs index d4ee1c3..0611a9f 100644 --- a/src/model/utils.rs +++ b/src/model/utils.rs @@ -304,13 +304,6 @@ pub fn user_has_perms(channel_id: ChannelId, Ok(permissions.is_empty()) } -#[doc(hidden)] -#[cfg(all(not(feature = "cache"), feature = "methods"))] -pub fn user_has_perms(channel_id: ChannelId, mut permissions: Permissions) - -> Result { - Ok(true) -} - pub fn warn_field(name: &str, map: BTreeMap) { if !map.is_empty() { debug!("Unhandled keys: {} has {:?}", name, Value::Object(map)) -- cgit v1.2.3