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中使用
2KB
Configr
如果存在,它将加载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