#config-file #derive

carpenter

轻松创建多个配置文件

1 个不稳定版本

0.1.0 2023 年 11 月 11 日

#540配置

MIT 许可证

5KB

Carpenter

轻松创建多个配置文件。

支持

  • 支持所有有大小限制的整数
  • 支持字符串
  • 轻量级
  • 保存为二进制文件以减小文件大小

安装/使用

安装

使用此 crate 需要以下依赖项

[dependencies]
bytestream = "0.4.1"
carpenter = "0.1.0"

使用方法

use carpenter::ConfigManager;

// Create a struct and derive it with ConfigManager
#[derive(ConfigManager, PartialEq, Debug)]
struct Config {
    _a: i32,
    _b: bool,
    _c: String,
}

fn main() {
    // Create config builder
    let config_factory = Config::init_config(
        "meloencoding", // username
        "config-rs-test", // application name
        "test.bin" // config file name
    );
    // Lin: /home/alice/.config/{application name}/{config file name}
    // Win: C:\Users\Alice\AppData\Roaming\{username}\{application name}\config/{config file name}
    // Mac: /Users/Alice/Library/Application Support/com.{username}.{application name}

/{config file name}
    // To save your config
    let sample_config = Config {
        _a: 400,
        _b: true,
        _c: String::from("Hey"),
    };

    config_factory.save(&sample_config);

    // To read the saved config
    assert_eq!(sample_config, config_factory.read());
}

配置文件

  • 字节序为 大端
  • i32 = 4 字节,因此 0x00-0x03 是 0x00_00_01_90,十进制为 400。
  • bool = 1 字节,因此 0x04-0x04 是 0x01,在 Rust 中为 true。
  • String = 在这种情况下为 4 字节,因此 0x05-0x08 是 0x48_65_79_00,即 "Hey\0"。字符串以 null 结尾。
config file in hxd

依赖项

~0.4–10MB
~63K SLoC