mirror of
https://github.com/stoatchat/stoatchat.git
synced 2026-08-31 00:10:30 +00:00
# Conflicts: # crates/core/database/src/util/bridge/v0.rs # crates/core/result/src/axum.rs # crates/core/result/src/lib.rs # crates/core/result/src/rocket.rs
45 lines
2.1 KiB
Rust
45 lines
2.1 KiB
Rust
use std::{
|
|
collections::{BTreeMap, HashMap},
|
|
sync::Arc,
|
|
};
|
|
|
|
use futures::lock::Mutex;
|
|
|
|
use crate::{
|
|
AdminAuditItem, AdminCase, AdminComment, AdminStrike, AdminToken, AdminUser, Bot, Channel,
|
|
ChannelCompositeKey, ChannelUnread, Emoji, File, FileHash, Invite, Member, MemberCompositeKey,
|
|
Message, PolicyChange, RatelimitEvent, Report, Server, ServerBan, Snapshot, User, UserSettings,
|
|
Webhook,
|
|
};
|
|
|
|
database_derived!(
|
|
/// Reference implementation
|
|
#[derive(Default, Debug)]
|
|
pub struct ReferenceDb {
|
|
pub admin_audits: Arc<Mutex<BTreeMap<String, AdminAuditItem>>>,
|
|
pub admin_cases: Arc<Mutex<HashMap<String, AdminCase>>>,
|
|
pub admin_comments: Arc<Mutex<HashMap<String, AdminComment>>>,
|
|
pub admin_strikes: Arc<Mutex<HashMap<String, AdminStrike>>>,
|
|
pub admin_tokens: Arc<Mutex<HashMap<String, AdminToken>>>,
|
|
pub admin_users: Arc<Mutex<HashMap<String, AdminUser>>>,
|
|
pub bots: Arc<Mutex<HashMap<String, Bot>>>,
|
|
pub channels: Arc<Mutex<HashMap<String, Channel>>>,
|
|
pub channel_invites: Arc<Mutex<HashMap<String, Invite>>>,
|
|
pub channel_unreads: Arc<Mutex<HashMap<ChannelCompositeKey, ChannelUnread>>>,
|
|
pub channel_webhooks: Arc<Mutex<HashMap<String, Webhook>>>,
|
|
pub emojis: Arc<Mutex<HashMap<String, Emoji>>>,
|
|
pub file_hashes: Arc<Mutex<HashMap<String, FileHash>>>,
|
|
pub files: Arc<Mutex<HashMap<String, File>>>,
|
|
pub messages: Arc<Mutex<HashMap<String, Message>>>,
|
|
pub policy_changes: Arc<Mutex<HashMap<String, PolicyChange>>>,
|
|
pub ratelimit_events: Arc<Mutex<HashMap<String, RatelimitEvent>>>,
|
|
pub user_settings: Arc<Mutex<HashMap<String, UserSettings>>>,
|
|
pub users: Arc<Mutex<HashMap<String, User>>>,
|
|
pub server_bans: Arc<Mutex<HashMap<MemberCompositeKey, ServerBan>>>,
|
|
pub server_members: Arc<Mutex<HashMap<MemberCompositeKey, Member>>>,
|
|
pub servers: Arc<Mutex<HashMap<String, Server>>>,
|
|
pub safety_reports: Arc<Mutex<HashMap<String, Report>>>,
|
|
pub safety_snapshots: Arc<Mutex<HashMap<String, Snapshot>>>,
|
|
}
|
|
);
|