mod load;
mod runtime;
mod schema;
mod validate;
pub use load::{Setting, read_layer};
pub use schema::*;
use anyhow::Result;
use scv_client::Layout;
#[derive(Debug, Clone)]
pub(crate) struct Instance {
pub(crate) layout: Layout,
pub(crate) overrides: ConfigOverrides,
}
impl Instance {
fn files(&self) -> ConfigOverrides {
ConfigOverrides {
config_file: self.overrides.config_file.clone(),
..ConfigOverrides::default()
}
}
pub(crate) fn load(&self, workspace: &std::path::Path) -> Result<Config> {
Config::load(&self.layout, workspace, self.files())
}
pub(crate) fn load_user(&self) -> Result<Config> {
Config::load_user(&self.layout, self.files())
}
}
#[cfg(test)]
mod tests;