Skip to main content

revolt_database/drivers/
reference.rs

1use 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    /// Reference implementation
13    #[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);