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
如果存在,则将加载 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