aboutsummaryrefslogtreecommitdiff
path: root/src/client/dispatch.rs
diff options
context:
space:
mode:
authorzeyla <[email protected]>2018-07-09 16:08:27 -0700
committerGitHub <[email protected]>2018-07-09 16:08:27 -0700
commite6026308b33c80aa33f0001c89cd271cc5cb6687 (patch)
tree2f8f50244c4d7a1234922fef61a72eb8dddbf4c5 /src/client/dispatch.rs
parentRemove deprecated use of Colour associated methods (diff)
downloadserenity-e6026308b33c80aa33f0001c89cd271cc5cb6687.tar.xz
serenity-e6026308b33c80aa33f0001c89cd271cc5cb6687.zip
Add a message cache API (#345)
This adds an API for message caching. By default this caches 0 messages per channel. This can be customized when instantiating: ```rust use serenity::cache::{Cache, Settings}; let mut settings = Settings::new(); // Cache 10 messages per channel. settings.max_messages(10); let cache = Cache::new_with_settings(settings); ``` After instantiation: ```rust use serenity::cache::Cache; let mut cache = Cache::new(); cache.settings_mut().max_messages(10); ``` And during runtime through the global cache: ```rust use serenity::CACHE; CACHE.write().settings_mut().max_messages(10); ```
Diffstat (limited to 'src/client/dispatch.rs')
-rw-r--r--src/client/dispatch.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/client/dispatch.rs b/src/client/dispatch.rs
index b91b8d7..04bd8c9 100644
--- a/src/client/dispatch.rs
+++ b/src/client/dispatch.rs
@@ -68,7 +68,9 @@ pub(crate) fn dispatch<H: EventHandler + Send + Sync + 'static>(
shard_id: u64,
) {
match event {
- DispatchEvent::Model(Event::MessageCreate(event)) => {
+ DispatchEvent::Model(Event::MessageCreate(mut event)) => {
+ update!(event);
+
let context = context(data, runner_tx, shard_id);
dispatch_message(
context.clone(),
@@ -103,6 +105,8 @@ pub(crate) fn dispatch<H: EventHandler + Send + Sync + 'static>(
) {
match event {
DispatchEvent::Model(Event::MessageCreate(event)) => {
+ update!(event);
+
let context = context(data, runner_tx, shard_id);
dispatch_message(context, event.message, event_handler, threadpool);
},
@@ -506,6 +510,8 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
});
},
DispatchEvent::Model(Event::MessageUpdate(mut event)) => {
+ update!(event);
+
let context = context(data, runner_tx, shard_id);
let event_handler = Arc::clone(event_handler);