1 个不稳定版本
0.1.0 | 2024年7月22日 |
---|
#1160 在 解析器实现
每月 150 次下载
15KB
60 行
config_updater
易于使用的配置更新器。
当进行更改时自动更新您的配置,而不是每次都重新启动。
示例
use serde::Deserialize;
use config_updater::ConfigMonitor;
#[derive(Deserialize)]
struct MyConfig {
id: u64,
}
#[tokio::main]
async fn main() {
let config_monitor: ConfigMonitor<MyConfig> = ConfigMonitor::new("./config.json", Some(30));
let my_config = config_monitor.data(); // Arc<Mutex<MyConfig>>
let config_handle = config_monitor.monitor();
let c_my_config = my_config.clone();
tokio::spawn(async {
// Do Something with c_my_config
let my_id = {
let lock = c_my_config.lock().await;
lock.id.clone();
};
println!("My ID: {}", my_id);
});
config_handle.await.unwrap();
}
lib.rs
:
易于使用的配置更新器 自动更新您的配置,而不是每次都重新启动。
示例
use serde::Deserialize;
use config_updater::ConfigMonitor;
#[derive(Deserialize)]
struct MyConfig {
id: u64,
}
#[tokio::main]
async fn main() {
let config_monitor: ConfigMonitor<MyConfig> = ConfigMonitor::new("./config.json", Some(30));
let my_config = config_monitor.data(); // Arc<Mutex<MyConfig>>
let config_handle = config_monitor.monitor();
let c_my_config = my_config.clone();
tokio::spawn(async {
// Do Something with c_my_config
let my_id = {
let lock = c_my_config.lock().await;
lock.id.clone();
};
println!("My ID: {}", my_id);
});
config_handle.await.unwrap();
}
依赖项
~3–10MB
~94K SLoC