mod builder;
mod dml;
mod env;
mod file;
mod procedure;
pub use builder::{Config, ConfigBuilder, TelemetryConfig, TransportConfig, TransportMode};
pub use dml::{AllowedOperations, DmlConfig, DmlOperation};
pub use procedure::ProcedureConfig;
use crate::Result;
pub fn load_config() -> Result<ConfigBuilder> {
let mut builder = ConfigBuilder::new();
if let Some(path) = file::find_config_file() {
tracing::info!("Loading configuration from {}", path.display());
builder = file::load_from_file(&path, builder)?;
}
builder = env::load_from_env(builder)?;
Ok(builder)
}
pub fn load_config_from_path(path: &std::path::Path) -> Result<ConfigBuilder> {
let mut builder = ConfigBuilder::new();
builder = file::load_from_file(path, builder)?;
builder = env::load_from_env(builder)?;
Ok(builder)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_load_config_no_file() {
let result = load_config();
assert!(result.is_ok());
}
}