tulpje_cache/event/
guild.rs1use twilight_model::gateway::payload::incoming::{
2 GuildCreate, GuildDelete, GuildUpdate, UnavailableGuild,
3};
4
5use crate::UpdateCache;
6
7impl UpdateCache for GuildCreate {
8 async fn update(&self, cache: &crate::Cache) -> Result<(), crate::Error> {
9 match self {
10 Self::Available(guild) => cache.cache_guild(guild.clone()).await,
11 Self::Unavailable(unavailable) => cache.unavailable_guild(unavailable.id).await,
12 }
13 }
14}
15
16impl UpdateCache for GuildDelete {
17 async fn update(&self, cache: &crate::Cache) -> Result<(), crate::Error> {
18 cache.delete_guild(self.id, false).await
19 }
20}
21
22impl UpdateCache for GuildUpdate {
23 async fn update(&self, cache: &crate::Cache) -> Result<(), crate::Error> {
24 cache.update_guild(self).await
25 }
26}
27
28impl UpdateCache for UnavailableGuild {
29 async fn update(&self, cache: &crate::Cache) -> Result<(), crate::Error> {
30 cache.unavailable_guild(self.id).await?;
31
32 Ok(())
33 }
34}