blob: 1177c5e6be0111540be06aba8fe483f0d8aa9a87 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
use sqlx::sqlite::SqlitePool;
use crate::{
channel::app::{Broadcaster, Channels},
index::app::Index,
login::app::Logins,
};
#[derive(Clone)]
pub struct App {
db: SqlitePool,
broadcaster: Broadcaster,
}
impl App {
pub async fn from(db: SqlitePool) -> Result<Self, sqlx::Error> {
let broadcaster = Broadcaster::from_database(&db).await?;
Ok(Self { db, broadcaster })
}
}
impl App {
pub const fn index(&self) -> Index {
Index::new(&self.db)
}
pub const fn logins(&self) -> Logins {
Logins::new(&self.db)
}
pub const fn channels(&self) -> Channels {
Channels::new(&self.db, &self.broadcaster)
}
}
|