revolt_database/models/user_settings/
model.rs

1use std::collections::HashMap;
2
3use crate::{events::client::EventV1, Database};
4
5use revolt_result::Result;
6
7pub type UserSettings = HashMap<String, (i64, String)>;
8
9#[async_trait]
10pub trait UserSettingsImpl {
11    async fn set(self, db: &Database, user: &str) -> Result<()>;
12}
13
14#[async_trait]
15impl UserSettingsImpl for UserSettings {
16    async fn set(self, db: &Database, user: &str) -> Result<()> {
17        db.set_user_settings(user, &self).await?;
18
19        EventV1::UserSettingsUpdate {
20            id: user.to_string(),
21            update: self,
22        }
23        .private(user.to_string())
24        .await;
25
26        Ok(())
27    }
28}