2 个版本

0.5.1 2024 年 6 月 6 日
0.5.0 2024 年 6 月 4 日

#287 in 配置

每月 32 次下载

MIT 许可证

19KB
256

Crates.io MIT licensed Build Status

krossbar-settings-lib

Krossbar 设置库

该库提供了一个方便的包装器,用于将设置写入和读取 JSON 文件。

使用 Settings 处理器打开设置文件。使用处理器,您可以读取、插入或从内部 JSON 中删除设置项。

要创建 条目,请使用 Settings::readSettings::read_or_insert 方法,该方法尝试从设置文件中读取值,如果不存在,则添加新的 JSON 条目。

使用 条目 处理器,您可以修改相应的 JSON 设置文件。

示例

use std::path::Path;

use krossbar_settings_common::DEFAULT_SETTINGS_DIR;
use krossbar_settings_lib::Settings;

const SERVICE_NAME: &str = "krossbar.storage.example";

fn print_json(path: &Path) {
    let data = std::fs::read_to_string(path).unwrap();
    println!("Settings: '{data}'");
}

fn manage_settings() {
    let settings = Settings::init(SERVICE_NAME).unwrap();

    let settings_path = Path::new(DEFAULT_SETTINGS_DIR).join(format!("{SERVICE_NAME}.json"));
    print_json(&settings_path); // {}

    let mut value = settings.read_or_insert("test_value", 42i32).unwrap();
    print_json(&settings_path);
    // { "test_value": ${some number} } if existed or
    // { "test_value": 42 } if a newly created entry

    value.update(11).unwrap();
    print_json(&settings_path); // { "test_value": 11 }

    value.clear().unwrap(); // {}
}

依赖项

~0.7–1.6MB
~35K SLoC