aboutsummaryrefslogtreecommitdiff
path: root/src/model/user.rs
diff options
context:
space:
mode:
authoracdenisSK <[email protected]>2017-08-24 15:26:49 +0200
committeracdenisSK <[email protected]>2017-08-24 16:36:01 +0200
commitb3a5bc89ad1c09290fb1c15ca3b36fe17c3796f3 (patch)
tree315e16f7b252d22b5f832302e722a85c9e6a9b6e /src/model/user.rs
parentAllow FromStr for User to use REST (#147) (diff)
downloadserenity-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.rs104
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")]