#serde #parser #utility #config-toml

confik-macros

confik宏

7个版本 (重大更新)

0.11.1 2023年12月4日
0.11.0 2023年10月20日
0.10.0 2023年7月17日
0.9.0 2023年7月13日
0.0.1 2023年7月12日

#42#config-toml

Download history 905/week @ 2024-04-04 1241/week @ 2024-04-11 1747/week @ 2024-04-18 1775/week @ 2024-04-25 1456/week @ 2024-05-02 1011/week @ 2024-05-09 972/week @ 2024-05-16 1377/week @ 2024-05-23 1105/week @ 2024-05-30 582/week @ 2024-06-06 1363/week @ 2024-06-13 1040/week @ 2024-06-20 726/week @ 2024-06-27 555/week @ 2024-07-04 800/week @ 2024-07-11 1069/week @ 2024-07-18

3,305 每月下载量
confik 中使用

MIT/Apache

35KB
743

confik

crates.io Documentation MIT or Apache 2.0 licensed
Version dependency status Download

此crate提供创建配置/设置结构和从文件和环境读取它们的函数的宏。

示例

假设 config.toml 包含

host = "google.com"
username = "root"

并且环境包含

PASSWORD=hunter2

那么

use confik::{Configuration, EnvSource, FileSource};

#[derive(Debug, PartialEq, Configuration)]
struct Config {
    host: String,
    username: String,

    #[confik(secret)]
    password: String,
}

fn main() {
    let config = Config::builder()
        .override_with(FileSource::new("config.toml"))
        .override_with(EnvSource::new().allow_secrets())
        .try_build()
        .unwrap();

    assert_eq!(
        config,
        Config {
            host: "google.com".to_string(),
            username: "root".to_string(),
            password: "hunter2".to_string(),
        }
    );
}

许可证

本项目可在以下任一许可证下使用:

  • Apache License,版本2.0
  • MIT许可证

任选其一。

依赖

~0.6–1MB
~24K SLoC