Crate serfig

Source
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§

pub use collectors::Collector;
pub use parsers::Parser;

Modules§

collectors
Collectors will provide abstractions for different collectors.
parsers
Parsers will provide abstractions for parsing structural data like toml and json.

Structs§

Builder
Builder will collect values from different collectors and merge into the final value.