aboutsummaryrefslogtreecommitdiff
path: root/src/cache
diff options
context:
space:
mode:
authoracdenisSK <[email protected]>2017-08-11 12:01:40 +0200
committeracdenisSK <[email protected]>2017-08-11 12:01:40 +0200
commit32de2cb941e8d4fdffde7b8b82599fcd78ab4c2f (patch)
treec07186f793a308632c54efd52a15625bb9dd4280 /src/cache
parentSplit event handling in the cache to a trait (diff)
downloadserenity-32de2cb941e8d4fdffde7b8b82599fcd78ab4c2f.tar.xz
serenity-32de2cb941e8d4fdffde7b8b82599fcd78ab4c2f.zip
Put `update_user_entry` back into the cache
Not really related to the events by any means
Diffstat (limited to 'src/cache')
-rw-r--r--src/cache/cache_events_impl.rs13
-rw-r--r--src/cache/mod.rs13
2 files changed, 12 insertions, 14 deletions
diff --git a/src/cache/cache_events_impl.rs b/src/cache/cache_events_impl.rs
index 308a3b5..0ac1f8f 100644
--- a/src/cache/cache_events_impl.rs
+++ b/src/cache/cache_events_impl.rs
@@ -66,8 +66,6 @@ pub(crate) trait CacheEventsImpl {
fn update_with_user_update(&mut self, event: &UserUpdateEvent) -> CurrentUser;
fn update_with_voice_state_update(&mut self, event: &VoiceStateUpdateEvent);
-
- fn update_user_entry(&mut self, user: &User);
}
impl CacheEventsImpl for super::Cache {
@@ -526,15 +524,4 @@ impl CacheEventsImpl for super::Cache {
return;
}
}
-
- fn update_user_entry(&mut self, user: &User) {
- match self.users.entry(user.id) {
- Entry::Vacant(e) => {
- e.insert(Arc::new(RwLock::new(user.clone())));
- },
- Entry::Occupied(mut e) => {
- e.get_mut().write().unwrap().clone_from(user);
- },
- }
- }
} \ No newline at end of file
diff --git a/src/cache/mod.rs b/src/cache/mod.rs
index a3d0058..19089ee 100644
--- a/src/cache/mod.rs
+++ b/src/cache/mod.rs
@@ -41,7 +41,7 @@
//! [`Role`]: ../model/struct.Role.html
//! [`CACHE`]: ../struct.CACHE.html
//! [`http`]: ../http/index.html
-
+use std::collections::hash_map::Entry;
use std::collections::{HashMap, HashSet};
use std::default::Default;
use std::sync::{Arc, RwLock};
@@ -592,6 +592,17 @@ impl Cache {
pub fn user<U: Into<UserId>>(&self, user_id: U) -> Option<Arc<RwLock<User>>> {
self.users.get(&user_id.into()).cloned()
}
+
+ fn update_user_entry(&mut self, user: &User) {
+ match self.users.entry(user.id) {
+ Entry::Vacant(e) => {
+ e.insert(Arc::new(RwLock::new(user.clone())));
+ },
+ Entry::Occupied(mut e) => {
+ e.get_mut().write().unwrap().clone_from(user);
+ },
+ }
+ }
}
impl Default for Cache {