1 个不稳定版本
0.1.0 | 2023 年 11 月 11 日 |
---|
#540 在 配置
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 结尾。
依赖项
~0.4–10MB
~63K SLoC