use std::{collections::HashMap, sync::Arc}; use futures::lock::Mutex; use crate::{ Bot, Channel, ChannelCompositeKey, ChannelUnread, Emoji, File, Invite, Member, MemberCompositeKey, Message, RatelimitEvent, Report, Server, ServerBan, Snapshot, User, UserSettings, Webhook, }; database_derived!( /// Reference implementation #[derive(Default)] pub struct ReferenceDb { pub bots: Arc>>, pub channels: Arc>>, pub channel_invites: Arc>>, pub channel_unreads: Arc>>, pub channel_webhooks: Arc>>, pub emojis: Arc>>, pub files: Arc>>, pub messages: Arc>>, pub ratelimit_events: Arc>>, pub user_settings: Arc>>, pub users: Arc>>, pub server_bans: Arc>>, pub server_members: Arc>>, pub servers: Arc>>, pub safety_reports: Arc>>, pub safety_snapshots: Arc>>, } );