use crate::binding;
use std::path::PathBuf;
#[derive(Debug, Clone)]
pub struct Roots {
pub yog_data: PathBuf,
pub litany_data: PathBuf,
pub yog_state: PathBuf,
pub balls_clones: PathBuf,
pub home: PathBuf,
pub world: crate::xdg::Env,
}
impl Roots {
pub fn of(world: &crate::xdg::Env) -> Roots {
Roots {
yog_data: world.yog_data_root(),
litany_data: world.litany_data_root(),
yog_state: world.yog_state_root(),
balls_clones: world.balls_clones_dir(),
home: world.home_dir(),
world: world.clone(),
}
}
pub(super) fn names(&self) -> PathBuf {
binding::names_root(&self.yog_data)
}
pub(crate) fn workspaces(&self) -> PathBuf {
self.litany_data.join("workspaces")
}
pub(super) fn replays(&self) -> PathBuf {
self.litany_data.join("replays")
}
pub(super) fn ui_json(&self) -> PathBuf {
self.yog_state.join("ui.json")
}
}
#[cfg(test)]
mod tests;