serfig
Layered configuration system built upon serde
Quick Start
use serde::{Deserialize, Serialize};
use serfig::collectors::{from_env, from_file, from_self};
use serfig::parsers::Toml;
use serfig::Builder;
#[derive(Debug, Serialize, Deserialize, PartialEq, Default)]
#[serde(default)]
struct TestConfig {
a: String,
b: String,
c: i64,
}
fn main() -> anyhow::Result<()> {
let builder = Builder::default()
.collect(from_env())
.collect(from_file(Toml, "config.toml"))
.collect(from_self(TestConfig::default()));
let t: TestConfig = builder.build()?;
println!("{:?}", t);
Ok(())
}
Contributing
Check out the CONTRIBUTING.md guide for more details on getting started with contributing to this project.
Getting help
Submit issues for bug report or asking questions in discussion.
Acknowledgment
This project is highly inspired by config-rs
License