#default #directories #initial #config #api-key #heirarchical

figgy

一个用于管理配置文件的轻量级库,支持分层目录、默认值和写入初始文件

3 个版本

0.1.2 2023 年 5 月 17 日
0.1.1 2023 年 5 月 17 日
0.1.0 2023 年 5 月 17 日

#10 in #initial

每月 42 次下载

MIT 许可证

9KB
163 代码行

figgy

一个用于管理配置文件的轻量级 Rust 库,支持分层目录、默认值和写入初始文件

示例

~/.config/myapp/myapp.config.json~/.myapp/myapp.config.json

{
    "api_key": "1234abcdef!@#$%",
    "api_version": 3
}

您的 Rust 程序

    use serde::{Deserialize, Serialize};

    #[derive(Serialize, Deserialize)]
    struct ApiKeysConfig {
        api_key: String,
        api_version: i16,
    }

    let config = ConfigFile::<ApiKeysConfig>::new("myapp.config.json")
            .directory("~/.config/myapp/")
            .directory("~/.myapp/")
            .read();

默认配置

如果您想设置默认配置,可以使用 .default()。如果想要在没有检测到配置文件时自动写入配置文件,可以使用 .create_file_if_not_found()

let config = ConfigFile::<PersonConfig>::new("myapp.config.json")))
            .directory("~/.config/myapp/")
            .directory("~/.myapp/")
            .create_file_if_not_found()
            .default(ApiKeysConfig {
                api_key: "Super secret API key",
                api_version: 25,
            })
            .read();

依赖项

~0.7–1.6MB
~34K SLoC