use sqlx::sqlite::SqlitePool; use crate::{ channel::app::Channels, events::{app::Events, broadcaster::Broadcaster}, login::app::Logins, }; #[derive(Clone)] pub struct App { db: SqlitePool, broadcaster: Broadcaster, } impl App { pub fn from(db: SqlitePool) -> Self { let broadcaster = Broadcaster::default(); Self { db, broadcaster } } } impl App { pub const fn logins(&self) -> Logins { Logins::new(&self.db) } pub const fn events(&self) -> Events { Events::new(&self.db, &self.broadcaster) } pub const fn channels(&self) -> Channels { Channels::new(&self.db) } }