tulpje_cache/models/
user.rs1use twilight_model::{
2 id::{Id, marker::GuildMarker},
3 user::CurrentUser,
4};
5
6use crate::{Cache, Error};
7
8pub use twilight_model::user::CurrentUser as CachedCurrentUser;
9pub use twilight_model::user::User as CachedUser;
10
11impl Cache {
12 pub(crate) async fn cache_user(
13 &self,
14 user: &CachedUser,
15 guild_id: Option<Id<GuildMarker>>,
16 ) -> Result<(), Error> {
17 if let Some(cached_user) = self.users.get(&user.id).await?
18 && cached_user == *user
19 {
20 if let Some(guild_id) = guild_id {
21 self.user_guilds.insert(&user.id, &guild_id).await?;
22 }
23
24 return Ok(());
25 }
26
27 self.users.insert(&user.id, user).await?;
28 if let Some(guild_id) = guild_id {
29 self.user_guilds.insert(&user.id, &guild_id).await?;
30 }
31
32 Ok(())
33 }
34
35 pub(crate) async fn cache_current_user(&self, user: &CurrentUser) -> Result<(), Error> {
36 self.current_user.set(user.clone()).await?;
37 Ok(())
38 }
39}