tulpje_cache/event/
channel.rs1use twilight_model::gateway::payload::incoming::{
2 ChannelCreate, ChannelDelete, ChannelPinsUpdate, ChannelUpdate,
3};
4
5use crate::UpdateCache;
6
7impl UpdateCache for ChannelCreate {
8 async fn update(&self, cache: &crate::Cache) -> Result<(), crate::Error> {
9 cache.cache_channel(self.0.clone()).await
10 }
11}
12
13impl UpdateCache for ChannelDelete {
14 async fn update(&self, cache: &crate::Cache) -> Result<(), crate::Error> {
15 cache.delete_channel(self.id).await
16 }
17}
18
19impl UpdateCache for ChannelPinsUpdate {
20 async fn update(&self, cache: &crate::Cache) -> Result<(), crate::Error> {
21 if let Some(mut channel) = cache.channels.get(&self.channel_id).await? {
22 channel.last_pin_timestamp = self.last_pin_timestamp;
23 cache.channels.insert(&channel.id, &channel).await?;
24 }
25
26 Ok(())
27 }
28}
29
30impl UpdateCache for ChannelUpdate {
31 async fn update(&self, cache: &crate::Cache) -> Result<(), crate::Error> {
32 cache.cache_channel(self.0.clone()).await
33 }
34}