5 releases
0.1.0 | Mar 15, 2023 |
---|---|
0.0.3 | Oct 26, 2022 |
0.0.2 | May 18, 2022 |
0.0.1 | Apr 23, 2022 |
0.0.0 | Apr 19, 2022 |
#1275 in Encoding
4,726 downloads per month
Used in blooming
34KB
683 lines
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
Licensed under Apache License, Version 2.0.Dependencies
~2MB
~34K SLoC