aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAustin Hellyer <[email protected]>2016-11-28 17:51:58 -0800
committerAustin Hellyer <[email protected]>2016-11-28 17:51:58 -0800
commit9ef110ec52527e0018c979b0c44a52c98dceafdb (patch)
treee26068dcac610ee62eb6d5099d9916a8f132121d /src
parentCargo: Don't have bins for examples (diff)
downloadserenity-9ef110ec52527e0018c979b0c44a52c98dceafdb.tar.xz
serenity-9ef110ec52527e0018c979b0c44a52c98dceafdb.zip
Optimize for cached, non-method compiles
Diffstat (limited to 'src')
-rw-r--r--src/model/channel.rs10
-rw-r--r--src/model/guild.rs4
-rw-r--r--src/model/utils.rs7
3 files changed, 8 insertions, 13 deletions
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<F>(&self, f: F) -> Result<RichInvite>
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<PartialGuild> 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<bool> {
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<bool> {
- Ok(true)
-}
-
pub fn warn_field(name: &str, map: BTreeMap<String, Value>) {
if !map.is_empty() {
debug!("Unhandled keys: {} has {:?}", name, Value::Object(map))