11个不稳定版本 (5个破坏性更新)
0.6.0 | 2023年7月15日 |
---|---|
0.5.1 | 2023年7月7日 |
0.4.1 | 2022年8月6日 |
0.3.3 | 2022年8月3日 |
0.1.0 | 2022年8月2日 |
#425 in 配置
每月80次下载
26KB
495 行
abserde
简单的跨平台Rust库,用于管理应用设置/首选项。
安装
将crate作为依赖项安装到您的app的Cargo.toml文件中
[dependencies]
abserde = "0.6.0"
使用
导入 Abserde,相关定义,以及 serde::Serialize,和 serde::Deserialize
use abserde::*;
use serde::{Serialize, Deserialize};
定义一个结构体来存储您的应用配置。您必须从 serde::Serialize 和 serde::Deserialize 特性派生您的结构体。
use std::collections::HashMap;
#[derive(Serialize, Deserialize)]
struct MyConfig {
window_width: usize,
window_height: usize,
window_x: usize,
window_y: usize,
theme: String,
user_data: HashMap<String, String>,
}
创建一个 Abserde 实例来管理您的配置在磁盘上的存储方式
let my_abserde = Abserde::default();
以这种方式使用 Abserde 将使用您的crate作为应用配置目录的名称。
或者,您也可以向 Abserde 传递选项以更改配置文件的位置或格式
let my_abserde = Abserde {
app: "MyApp".to_string(),
location: Location::Auto,
format: Format::Json,
};
//! 对于JSON格式,您可以使用制表符或空格进行格式化打印配置文件
let my_abserde = Abserde {
app: "MyApp".to_string(),
location: Location::Auto,
format: Format::PrettyJson(PrettyJsonIndent::Tab),
};
let my_abserde = Abserde {
app: "MyApp".to_string(),
location: Location::Auto,
format: Format::PrettyJson(PrettyJsonIndent::Spaces(4)),
};
从磁盘加载配置数据
let my_config = MyConfig::load_config(&my_abserde)?;
将配置数据保存到磁盘
my_config.save_config(&my_abserde)?;
从磁盘删除配置文件
my_abserde.delete()?;
依赖
~0.8–2.4MB
~46K SLoC