5个不稳定版本

0.8.0 2021年5月28日
0.6.6 2021年5月15日
0.6.5 2021年5月15日
0.6.0 2021年5月15日
0.5.0 2021年5月8日

#21 in #config-directory


configr中使用

Unlicense协议

2KB

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 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,使用默认值

贡献者

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

许可证

本项目采用Unlicense协议

依赖关系

~1.5MB
~35K SLoC