cirious_codex_config 0.1.0

A robust, foundational configuration management framework for the Cirious ecosystem.
Documentation
#![allow(missing_docs)]
#![allow(clippy::unwrap_used)]

use cirious_codex_config::{format::ConfigFormat, Deserialize};

#[derive(Debug, Deserialize)]
struct AppSettings {
  app_name: String,
  debug_mode: bool,
}

fn main() {
  let ron_content = r#"
        (
            app_name: "My Awesome App",
            debug_mode: true,
        )
    "#;

  std::env::set_var("APP_DEBUG_MODE", "false");

  println!("Loading configuration...");

  let result = cirious_codex_config::ConfigBuilder::new()
    .add_source(ron_content, ConfigFormat::Ron)
    .unwrap()
    .value
    .add_env_prefix("APP_")
    .build::<AppSettings>();

  match result {
    Ok(ok_wrapper) => {
      let settings = ok_wrapper.value;
      println!("App Name: {}", settings.app_name);
      println!("Debug Mode: {}", settings.debug_mode);
    }
    Err(e) => eprintln!("Failed: {e}"),
  }
}