Expand description
serfig is a layered configuration system built upon serde.
Builder
will load configurations via different collectors.
Examples
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_self(TestConfig::default()));
let t: TestConfig = builder.build()?;
println!("{:?}", t);
Ok(())
}
Re-exports
Modules
- Collectors will provide abstractions for different collectors.
- Parsers will provide abstractions for parsing structural data like toml and json.
Structs
- Builder will collect values from different collectors and merge into the final value.