zernel_dashboard/
state.rs1use std::path::PathBuf;
4use tokio::sync::broadcast;
5
6pub struct AppState {
8 pub sse_tx: broadcast::Sender<String>,
10 pub experiments_db: PathBuf,
12 pub jobs_db: PathBuf,
14 pub models_registry: PathBuf,
16}
17
18impl AppState {
19 pub fn new(sse_tx: broadcast::Sender<String>) -> Self {
20 let zernel_dir = dirs::home_dir()
21 .unwrap_or_else(|| PathBuf::from("."))
22 .join(".zernel");
23
24 Self {
25 sse_tx,
26 experiments_db: zernel_dir.join("experiments").join("experiments.db"),
27 jobs_db: zernel_dir.join("jobs").join("jobs.db"),
28 models_registry: zernel_dir.join("models").join("registry.json"),
29 }
30 }
31}