aboutsummaryrefslogtreecommitdiff
path: root/src/model/guild/member.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/model/guild/member.rs')
-rw-r--r--src/model/guild/member.rs22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/model/guild/member.rs b/src/model/guild/member.rs
index 09474f9..7c0c784 100644
--- a/src/model/guild/member.rs
+++ b/src/model/guild/member.rs
@@ -78,15 +78,18 @@ impl Member {
/// [Manage Roles]: permissions/constant.MANAGE_ROLES.html
#[cfg(feature = "cache")]
pub fn add_role<R: Into<RoleId>>(&mut self, role_id: R) -> Result<()> {
- let role_id = role_id.into();
+ self._add_role(role_id.into())
+ }
- if self.roles.contains(&role_id) {
+ #[cfg(feature = "cache")]
+ fn _add_role(&mut self, id: RoleId) -> Result<()> {
+ if self.roles.contains(&id) {
return Ok(());
}
- match http::add_member_role(self.guild_id.0, self.user.read().unwrap().id.0, role_id.0) {
+ match http::add_member_role(self.guild_id.0, self.user.read().unwrap().id.0, id.0) {
Ok(()) => {
- self.roles.push(role_id);
+ self.roles.push(id);
Ok(())
},
@@ -312,15 +315,18 @@ impl Member {
/// [Manage Roles]: permissions/constant.MANAGE_ROLES.html
#[cfg(feature = "cache")]
pub fn remove_role<R: Into<RoleId>>(&mut self, role_id: R) -> Result<()> {
- let role_id = role_id.into();
+ self._remove_role(role_id.into())
+ }
- if !self.roles.contains(&role_id) {
+ #[cfg(feature = "cache")]
+ fn _remove_role(&mut self, id: RoleId) -> Result<()> {
+ if !self.roles.contains(&id) {
return Ok(());
}
- match http::remove_member_role(self.guild_id.0, self.user.read().unwrap().id.0, role_id.0) {
+ match http::remove_member_role(self.guild_id.0, self.user.read().unwrap().id.0, id.0) {
Ok(()) => {
- self.roles.retain(|r| r.0 != role_id.0);
+ self.roles.retain(|r| r.0 != id.0);
Ok(())
},