1个不稳定版本
0.1.0 | 2019年10月20日 |
---|
#1621 in 编码
每月213次下载
用于 3 个crate(通过 quicksilver)
16KB
260 行
gestalt
跨平台桌面和Web之间的配置和数据保存
在桌面端,保存由文件系统和API支持,并使用特定平台的数据位置。在Web端,保存由LocalStorage浏览器API支持。作为最终用户,您只需要关心您想要保存到哪个 Location
Cache
,它是短暂的,可能不会在程序运行之间持久化Config
,用于存储长期配置Data
,用于存储长期的大型数据块。
要保存和加载数据
use gestalt::{Location, save, load};
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize)]
struct Player {
name: String,
score: u32
}
let player1 = Player { name: "Bob".to_string(), score: 21 };
save(Location::Cache, "mygame", "player1", &player1).expect("Could not save Player 1");
let player2 = Player { name: "Alice".to_string(), score: 200 };
save(Location::Cache, "mygame", "player2", &player2).expect("Could not save Player 2");
// Now reload.
let player1 = load::<Player>(Location::Cache, "mygame", "player1").expect("Could not load Player 1");
let player2 = load::<Player>(Location::Cache, "mygame", "player2").expect("Could not load Player 2");
依赖项
~0.7–4MB
~81K SLoC