use dashmap::DashMap; use songbird::Songbird; use std::sync::Arc; use twilight_cache_inmemory::InMemoryCache; use twilight_http::Client as HttpClient; use twilight_model::id::{marker::GuildMarker, Id}; use twilight_standby::Standby; pub(crate) type State = Arc; #[derive(Debug)] pub(crate) struct Settings { pub(crate) loop_queue: bool, } impl Settings { pub(crate) fn new() -> Self { Self { loop_queue: false } } } impl Default for Settings { fn default() -> Self { Self::new() } } #[derive(Debug)] pub(crate) struct StateRef { pub(crate) http: HttpClient, pub(crate) cache: InMemoryCache, pub(crate) songbird: Songbird, pub(crate) standby: Standby, pub(crate) guild_settings: DashMap, Settings>, pub(crate) pool: sqlx::SqlitePool, pub(crate) client: reqwest::Client, }