use serde::{Deserialize, Serialize};
use std::path::PathBuf;
#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)]
pub struct RockLayoutConfig {
#[serde(alias = "etc_root")]
pub root: Option<PathBuf>,
pub etc: PathBuf,
pub opt_etc: PathBuf,
pub src: PathBuf,
pub lib: PathBuf,
pub conf: PathBuf,
pub doc: PathBuf,
}
impl RockLayoutConfig {
pub fn new_nvim_layout() -> Self {
Self {
root: Some("site/pack/lux".into()),
etc: "start".into(),
opt_etc: "opt".into(),
src: "lua".into(),
lib: "lib".into(),
conf: "conf".into(),
doc: "doc".into(),
}
}
pub(crate) fn is_default(&self) -> bool {
&Self::default() == self
}
}
impl Default for RockLayoutConfig {
fn default() -> Self {
Self {
root: None,
etc: "etc".into(),
opt_etc: "etc".into(),
src: "src".into(),
lib: "lib".into(),
conf: "conf".into(),
doc: "doc".into(),
}
}
}