1 个不稳定版本

0.1.0 2024年7月22日

#1160解析器实现

Download history 133/week @ 2024-07-21 17/week @ 2024-07-28

每月 150 次下载

GPL-3.0-only

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