6 个版本 (1 个稳定版本)
1.0.0 | 2022年5月26日 |
---|---|
0.4.0 | 2021年5月8日 |
0.3.0 | 2021年2月27日 |
0.2.0 | 2021年2月18日 |
0.1.1 | 2021年2月11日 |
#173 in #derive
18KB
269 行
choices
你喜欢 structops
和 clap
吗?你编写 microservices
吗?继续阅读!
choices
是一个库,它允许你通过简单的结构体将应用配置暴露在 HTTP 上!
看看,很简单
给定以下代码
use choices::Choices;
use lazy_static::lazy_static;
use std::sync::{Arc, Mutex};
#[derive(Choices)]
struct Config {
debug: bool,
id: Option<i32>,
log_file: String,
}
lazy_static! {
static ref CONFIG: Arc<Mutex<Config>> = {
Arc::new(Mutex::new(Config {
debug: false,
id: Some(3),
log_file: "log.txt".to_string()
}))
};
}
#[tokio::main]
async fn main() {
CONFIG.run((std::net::Ipv4Addr::LOCALHOST, 8081)).await;
}
您可以在 localhost:8081/config
看到所有配置字段,以及在 localhost:8081/config/<字段名称>
看到各个字段的值。
可以通过 PUT
来更改字段的值,例如 curl -X PUT localhost:8081/config/debug -d "true"
.
更多示例请参阅 示例。
还可以查看 文档。
功能
- 显示所有配置字段
- 获取配置字段
- PUT 配置字段
- 用户定义类型
- 支持 JSON
- 自定义验证器
- 设置回调
感谢
特别感谢 structops
的作者。它为学习过程式宏提供了灵感。
依赖项
~8–18MB
~238K SLoC