aboutsummaryrefslogtreecommitdiff
path: root/src/model/guild/member.rs
diff options
context:
space:
mode:
authoracdenisSK <[email protected]>2017-10-14 22:41:25 +0200
committeracdenisSK <[email protected]>2017-10-14 22:41:25 +0200
commitcae014758a1d1e926a71679f02e32601c57f8d52 (patch)
tree39270dbc2df916a91c3c4272600fd082a2604516 /src/model/guild/member.rs
parentSwitch to parking_lot::{Mutex, RwLock} (diff)
parentRelease v0.4.1 (diff)
downloadserenity-cae014758a1d1e926a71679f02e32601c57f8d52.tar.xz
serenity-cae014758a1d1e926a71679f02e32601c57f8d52.zip
Update to account for changes made in 0.4.1
Diffstat (limited to 'src/model/guild/member.rs')
-rw-r--r--src/model/guild/member.rs34
1 files changed, 11 insertions, 23 deletions
diff --git a/src/model/guild/member.rs b/src/model/guild/member.rs
index bca3ecb..02e5afb 100644
--- a/src/model/guild/member.rs
+++ b/src/model/guild/member.rs
@@ -159,10 +159,7 @@ impl Member {
#[cfg(all(feature = "cache", feature = "utils"))]
pub fn colour(&self) -> Option<Colour> {
let cache = CACHE.read();
- let guild = match cache.guilds.get(&self.guild_id) {
- Some(guild) => guild.read(),
- None => return None,
- };
+ let guild = try_opt!(cache.guilds.get(&self.guild_id)).read();
let mut roles = self.roles
.iter()
@@ -382,25 +379,16 @@ impl Member {
/// If role data can not be found for the member, then `None` is returned.
#[cfg(feature = "cache")]
pub fn roles(&self) -> Option<Vec<Role>> {
- CACHE
- .read()
- .guilds
- .values()
- .find(|guild| {
- guild.read().members.values().any(|m| {
- m.user.read().id == self.user.read().id &&
- m.joined_at == self.joined_at
- })
- })
- .map(|guild| {
- guild
- .read()
- .roles
- .values()
- .filter(|role| self.roles.contains(&role.id))
- .cloned()
- .collect()
- })
+ self
+ .guild_id
+ .find()
+ .map(|g| g
+ .read()
+ .roles
+ .values()
+ .filter(|role| self.roles.contains(&role.id))
+ .cloned()
+ .collect())
}
/// Unbans the [`User`] from the guild.