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