revolt_database/drivers/
reference.rs1use std::{collections::HashMap, sync::Arc};
2
3use futures::lock::Mutex;
4
5use crate::{
6 Account, AccountInvite, AuditLogEntry, Bot, Channel, ChannelCompositeKey, ChannelUnread, Emoji,
7 File, FileHash, Invite, MFATicket, Member, MemberCompositeKey, Message, PolicyChange,
8 RatelimitEvent, Report, Server, ServerBan, Session, Snapshot, User, UserSettings, Webhook,
9};
10
11database_derived!(
12 #[derive(Default, Debug)]
14 pub struct ReferenceDb {
15 pub audit_logs: Arc<Mutex<HashMap<String, AuditLogEntry>>>,
16 pub bots: Arc<Mutex<HashMap<String, Bot>>>,
17 pub channels: Arc<Mutex<HashMap<String, Channel>>>,
18 pub channel_invites: Arc<Mutex<HashMap<String, Invite>>>,
19 pub channel_unreads: Arc<Mutex<HashMap<ChannelCompositeKey, ChannelUnread>>>,
20 pub channel_webhooks: Arc<Mutex<HashMap<String, Webhook>>>,
21 pub emojis: Arc<Mutex<HashMap<String, Emoji>>>,
22 pub file_hashes: Arc<Mutex<HashMap<String, FileHash>>>,
23 pub files: Arc<Mutex<HashMap<String, File>>>,
24 pub messages: Arc<Mutex<HashMap<String, Message>>>,
25 pub policy_changes: Arc<Mutex<HashMap<String, PolicyChange>>>,
26 pub ratelimit_events: Arc<Mutex<HashMap<String, RatelimitEvent>>>,
27 pub user_settings: Arc<Mutex<HashMap<String, UserSettings>>>,
28 pub users: Arc<Mutex<HashMap<String, User>>>,
29 pub server_bans: Arc<Mutex<HashMap<MemberCompositeKey, ServerBan>>>,
30 pub server_members: Arc<Mutex<HashMap<MemberCompositeKey, Member>>>,
31 pub servers: Arc<Mutex<HashMap<String, Server>>>,
32 pub safety_reports: Arc<Mutex<HashMap<String, Report>>>,
33 pub safety_snapshots: Arc<Mutex<HashMap<String, Snapshot>>>,
34 pub accounts: Arc<Mutex<HashMap<String, Account>>>,
35 pub account_invites: Arc<Mutex<HashMap<String, AccountInvite>>>,
36 pub sessions: Arc<Mutex<HashMap<String, Session>>>,
37 pub tickets: Arc<Mutex<HashMap<String, MFATicket>>>,
38 }
39);