serfig

Crates.ioserfig
lib.rsserfig
version0.1.0
sourcesrc
created_at2022-04-19 06:35:04.454859
updated_at2023-03-15 07:59:58.004417
descriptionLayered configuration system built upon serde
homepage
repositoryhttps://github.com/Xuanwo/serfig
max_upload_size
id570190
size47,397
Xuanwo (Xuanwo)

documentation

https://docs.rs/serfig

README

serfig   Build Status Latest Version

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.
Commit count: 16

cargo fmt