diff options
| author | acdenisSK <[email protected]> | 2017-08-24 15:26:49 +0200 |
|---|---|---|
| committer | acdenisSK <[email protected]> | 2017-08-24 16:36:01 +0200 |
| commit | b3a5bc89ad1c09290fb1c15ca3b36fe17c3796f3 (patch) | |
| tree | 315e16f7b252d22b5f832302e722a85c9e6a9b6e /src/model/user.rs | |
| parent | Allow FromStr for User to use REST (#147) (diff) | |
| download | serenity-b3a5bc89ad1c09290fb1c15ca3b36fe17c3796f3.tar.xz serenity-b3a5bc89ad1c09290fb1c15ca3b36fe17c3796f3.zip | |
Revamp `RwLock` usage in the lib
Also not quite sure if they goofed rustfmt or something, but its changes it did were a bit bizarre.
Diffstat (limited to 'src/model/user.rs')
| -rw-r--r-- | src/model/user.rs | 104 |
1 files changed, 44 insertions, 60 deletions
diff --git a/src/model/user.rs b/src/model/user.rs index c32eeb8..c3b131b 100644 --- a/src/model/user.rs +++ b/src/model/user.rs @@ -25,14 +25,11 @@ use http::{self, GuildPagination}; pub struct CurrentUser { pub id: UserId, pub avatar: Option<String>, - #[serde(default)] - pub bot: bool, - #[serde(deserialize_with = "deserialize_u16")] - pub discriminator: u16, + #[serde(default)] pub bot: bool, + #[serde(deserialize_with = "deserialize_u16")] pub discriminator: u16, pub email: Option<String>, pub mfa_enabled: bool, - #[serde(rename = "username")] - pub name: String, + #[serde(rename = "username")] pub name: String, pub verified: bool, } @@ -88,10 +85,7 @@ impl CurrentUser { pub fn edit<F>(&mut self, f: F) -> Result<()> where F: FnOnce(EditProfile) -> EditProfile { let mut map = Map::new(); - map.insert( - "username".to_owned(), - Value::String(self.name.clone()), - ); + map.insert("username".to_owned(), Value::String(self.name.clone())); if let Some(email) = self.email.as_ref() { map.insert("email".to_owned(), Value::String(email.clone())); @@ -116,9 +110,8 @@ impl CurrentUser { /// [`avatar_url`]: #method.avatar_url /// [`default_avatar_url`]: #method.default_avatar_url pub fn face(&self) -> String { - self.avatar_url().unwrap_or_else( - || self.default_avatar_url(), - ) + self.avatar_url() + .unwrap_or_else(|| self.default_avatar_url()) } /// Gets a list of guilds that the current user is in. @@ -329,16 +322,11 @@ enum_number!( /// [`Invisible`]: #variant.Invisible #[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, PartialEq, PartialOrd, Ord, Serialize)] pub enum OnlineStatus { - #[serde(rename = "dnd")] - DoNotDisturb, - #[serde(rename = "idle")] - Idle, - #[serde(rename = "invisible")] - Invisible, - #[serde(rename = "offline")] - Offline, - #[serde(rename = "online")] - Online, + #[serde(rename = "dnd")] DoNotDisturb, + #[serde(rename = "idle")] Idle, + #[serde(rename = "invisible")] Invisible, + #[serde(rename = "offline")] Offline, + #[serde(rename = "online")] Online, } impl OnlineStatus { @@ -492,36 +480,35 @@ impl User { return Err(Error::Model(ModelError::MessagingBot)); } - let private_channel_id = - feature_cache! {{ - let finding = { - let cache = CACHE.read().unwrap(); - - let finding = cache.private_channels - .values() - .map(|ch| ch.read().unwrap()) - .find(|ch| ch.recipient.read().unwrap().id == self.id) - .map(|ch| ch.id); - - finding - }; - - if let Some(finding) = finding { - finding - } else { - let map = json!({ - "recipient_id": self.id.0, - }); - - http::create_private_channel(&map)?.id - } - } else { - let map = json!({ - "recipient_id": self.id.0, - }); - - http::create_private_channel(&map)?.id - }}; + let private_channel_id = feature_cache! {{ + let finding = { + let cache = CACHE.read().unwrap(); + + let finding = cache.private_channels + .values() + .map(|ch| ch.read().unwrap()) + .find(|ch| ch.recipient.read().unwrap().id == self.id) + .map(|ch| ch.id); + + finding + }; + + if let Some(finding) = finding { + finding + } else { + let map = json!({ + "recipient_id": self.id.0, + }); + + http::create_private_channel(&map)?.id + } + } else { + let map = json!({ + "recipient_id": self.id.0, + }); + + http::create_private_channel(&map)?.id + }}; private_channel_id.send_message(f) } @@ -547,7 +534,7 @@ impl User { /// [direct_message]: #method.direct_message #[cfg(feature = "builder")] #[inline] - pub fn dm<F: FnOnce(CreateMessage) -> CreateMessage>(&self, f: F) -> Result<Message> { +pub fn dm<F: FnOnce(CreateMessage) -> CreateMessage>(&self, f: F) -> Result<Message>{ self.direct_message(f) } @@ -560,9 +547,8 @@ impl User { /// [`avatar_url`]: #method.avatar_url /// [`default_avatar_url`]: #method.default_avatar_url pub fn face(&self) -> String { - self.avatar_url().unwrap_or_else( - || self.default_avatar_url(), - ) + self.avatar_url() + .unwrap_or_else(|| self.default_avatar_url()) } /// Check if a user has a [`Role`]. This will retrieve the [`Guild`] from @@ -808,9 +794,7 @@ fn default_avatar_url(discriminator: u16) -> String { #[cfg(feature = "model")] fn static_avatar_url(user_id: UserId, hash: Option<&String>) -> Option<String> { - hash.map( - |hash| cdn!("/avatars/{}/{}.webp?size=1024", user_id, hash), - ) + hash.map(|hash| cdn!("/avatars/{}/{}.webp?size=1024", user_id, hash)) } #[cfg(feature = "model")] |