diff options
| author | acdenisSK <[email protected]> | 2017-09-12 14:57:52 +0200 |
|---|---|---|
| committer | acdenisSK <[email protected]> | 2017-09-12 14:59:21 +0200 |
| commit | bc3491cf3a70a02ce5725e66887746567ae4660c (patch) | |
| tree | dc1086bfae3f2cb56ab8ea89e13cba8bf46c0513 /src/cache/mod.rs | |
| parent | Copy some methods from Command to Group (#164) (diff) | |
| download | serenity-bc3491cf3a70a02ce5725e66887746567ae4660c.tar.xz serenity-bc3491cf3a70a02ce5725e66887746567ae4660c.zip | |
Revamp `CacheEventsImpl`
Diffstat (limited to 'src/cache/mod.rs')
| -rw-r--r-- | src/cache/mod.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/cache/mod.rs b/src/cache/mod.rs index 88e4266..ba9efaa 100644 --- a/src/cache/mod.rs +++ b/src/cache/mod.rs @@ -47,9 +47,9 @@ use std::default::Default; use std::sync::{Arc, RwLock}; use model::*; -mod cache_events_impl; +mod cache_update; -pub(crate) use self::cache_events_impl::*; +pub(crate) use self::cache_update::*; /// A cache of all events received over a [`Shard`], where storing at least /// some data from the event is possible. @@ -602,7 +602,11 @@ impl Cache { self.categories.get(&channel_id.into()).cloned() } - fn update_user_entry(&mut self, user: &User) { + pub(crate) fn update<E: CacheUpdate>(&mut self, e: &mut E) -> Option<E::Output> { + e.update(self) + } + + pub(crate) 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()))); |