8 个不稳定版本 (3 个破坏性更新)

0.8.0 2021年5月28日
0.7.0 2021年5月27日
0.6.6 2021年5月15日
0.5.2 2021年5月9日

#621 in 配置

每月下载量 39

无许可证

11KB
123

Configr

在项目中使用配置文件的简单方法

crates.io

如果存在,则将加载 config.toml 文件,否则将创建所需的文件夹和 toml 文件。
如果存在配置文件或强制使用,它将使用操作系统用户配置目录,如下所示

  • Linux: $XDG_CONFIG_HOME/app-name/config.toml
  • Windows: %APPDATA%/app-name/config.toml
  • Mac OS: $HOME/Library/Application Support/app-name/config.toml

否则回退到加载系统配置,位于

  • Unix: /etc/app-name/config.toml
  • 其他: BINARY_LOCATION/app-name/config.toml

如果无法创建系统配置,则将生成用户配置
还可以使用自定义配置目录

用法

将以下内容添加到您的 Cargo.toml

configr = "0.8.0"

或使用 cargo-edit,通过 cargo add configr

然后在您的项目中添加以下片段

use configr::{Config, Configr};
#[derive(Configr, Deserialize, Serialize, Default)]
pub struct BotConfig {
    bot_username: String,
    client_id: String,
    client_secret: String,
    channel: String,
}

将 BotConfig 替换为您自己的配置结构体

然后您可以加载配置,通常在应用程序启动时使用 load 函数从系统配置目录加载,这需要应用程序名称和是否强制使用用户配置目录

// Will load from /home/USER/.config/bot-app/config.toml
let config = BotConfig::load("bot app", true).unwrap();

或者使用 load_with_dir 函数使用自定义配置目录

// Will load from /home/USER/bot-app/config.toml
let config = BotConfig::load_with_dir("bot app", "$HOME").unwrap();

这将根据默认实现自动将默认值填充到 config.toml

贡献者

目前不接受不解决问题的任何贡献。
如果您发现任何问题或边缘情况,请打开一个问题!

许可证

该项目受 无许可证 许可证的约束。

依赖项

~1.5–2.3MB
~49K SLoC