7个版本 (3个稳定版)
3.0.1 | 2024年2月5日 |
---|---|
2.0.0 | 2023年6月14日 |
0.1.3 | 2023年5月21日 |
#327 in 配置
每月34次下载
28KB
378 行
⚙️ opzioni
一个简单快速的Rust配置库。
安装
通过cargo将库添加到项目中
cargoadd opzioni
功能
默认情况下,所有功能都已启用。这允许您使用JSON、TOML和YAML配置。
如果您只想使用子集,请运行
cargoadd opzioni --no-default-features --featuresjson
将json替换为您想要启用的功能。可用的功能包括
- json
- yaml
- toml
您还可以通过使用tracing crate的tracing功能启用日志记录。默认情况下,此功能是禁用的
用法
首先创建一个实现Serialize
、Deserialize
和Default
的struct
use serde::{Serialize, Deserialize}
#[derive(Serialize, Deserialize, Default)]
struct MyConfig {
name: String,
age: u8
}
然后只需使用opzioni加载配置文件即可
let config = opzioni::Config::<MyConfig>::configure().load(std::path::Path::new("myconfig.yml")).unwrap();
opzioni公开了一个RwLock
,可以用来修改配置数据
let lock = config.get();
let data = lock.read().unwrap();
// or
let mut data = lock.write().unwrap();
一旦您完成与配置的交互,可以通过调用save
将更改保存到磁盘
config.save().unwrap();
依赖关系
~0.4–2.6MB
~51K SLoC