#preferences #settings #serde #config-file #json-format #options

abserde

简单的跨平台Rust库,用于管理应用设置/首选项

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 配置

Download history 37/week @ 2024-03-10 8/week @ 2024-03-17 18/week @ 2024-03-24 21/week @ 2024-03-31 1/week @ 2024-04-07 9/week @ 2024-04-21 7/week @ 2024-05-05 2/week @ 2024-05-12 29/week @ 2024-05-19 34/week @ 2024-05-26 33/week @ 2024-06-02 24/week @ 2024-06-09 2/week @ 2024-06-16 19/week @ 2024-06-23

每月80次下载

MIT 许可证

26KB
495

abserde

Crates.io Crates.io Crates.io GitHub Workflow Status docs.rs

简单的跨平台Rust库,用于管理应用设置/首选项。

安装

将crate作为依赖项安装到您的app的Cargo.toml文件中

[dependencies]
abserde = "0.6.0"

使用

导入 Abserde,相关定义,以及 serde::Serialize,和 serde::Deserialize

use abserde::*;
use serde::{Serialize, Deserialize};

定义一个结构体来存储您的应用配置。您必须从 serde::Serializeserde::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