summaryrefslogtreecommitdiff
path: root/src/emotes.rs
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2025-04-09 02:36:05 +0500
committerilotterytea <iltsu@alright.party>2025-04-09 02:36:05 +0500
commita4ce687ddd119ff97ac1efd3b23d0c27013845f4 (patch)
treebeb652ec216f425ab18bddb0efcfa2fd088c115e /src/emotes.rs
parent93e26506c0211a3ebefa958e1df0d8cfbfc12b03 (diff)
upd: function signatures for RetrieveEmoteWS (attempt 2)
Diffstat (limited to 'src/emotes.rs')
-rw-r--r--src/emotes.rs15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/emotes.rs b/src/emotes.rs
index 53fd5ad..b1beb9d 100644
--- a/src/emotes.rs
+++ b/src/emotes.rs
@@ -1,3 +1,5 @@
+use std::sync::Arc;
+
use reqwest::Error;
use serde::{Deserialize, Serialize};
@@ -33,11 +35,10 @@ pub trait RetrieveEmoteAPI<T> {
async fn get_global_emotes(&self) -> Result<Vec<T>, Error>;
}
-pub trait RetrieveEmoteWS<T, F>
-where
- F: Fn(String, Option<String>, T),
-{
- fn on_emote_create(&mut self, func: F);
- fn on_emote_update(&mut self, func: F);
- fn on_emote_delete(&mut self, func: F);
+pub type RetrieveEmoteHandler<T> = Arc<dyn Fn(String, Option<String>, T) + Send + Sync>;
+
+pub trait RetrieveEmoteWS<T> {
+ fn on_emote_create(&mut self, func: impl Fn(String, Option<String>, T) + Send + Sync + 'static);
+ fn on_emote_update(&mut self, func: impl Fn(String, Option<String>, T) + Send + Sync + 'static);
+ fn on_emote_delete(&mut self, func: impl Fn(String, Option<String>, T) + Send + Sync + 'static);
}