#json #leverage #hash-map #serialization #minimalist #file-base-database #struct-to-json

struct-to-json-db

一个为简单软件应用设计的最小化文件数据库。它利用 Serde 包无缝地将结构化数据的 HashMap 序列化和反序列化为 JSON 文件,确保简单易用。

6 个版本

新版本 0.1.5 2024 年 8 月 12 日
0.1.4 2024 年 8 月 12 日

#471编码

Download history 190/week @ 2024-08-04 297/week @ 2024-08-11

每月 487 次下载

Apache-2.0

10KB
151 代码行

struct-to-json-db 是一个为简单软件应用设计的最小化文件数据库。它利用 Serde 包无缝地将结构化数据的 HashMap 序列化和反序列化为 JSON 文件,确保简单易用。

示例代码

要查看实际示例,请访问 示例代码仓库

开始使用

要开始使用,请将包添加到您的 Cargo.toml 文件

[dependencies]
struct-to-json-db = {  path = "https://github.com/acscoder/struct-to-json-db.git" } 

[dependencies]
struct-to-json-db = "x.x.x" 

https://crates.io/search?q=struct-to-json-db 上查看最新版本

配置

要配置 struct-to-json-db,使用 auto_json_db_config! 宏指定 JSON 文件存储的目录

struct_to_json_db::auto_json_db_config!("./db/");

注意:确保路径以斜杠 (/) 结尾。例如,"./db/" 是正确的,但 "./db" 是错误的。

将宏添加到您的结构体中

使用 #[auto_json_db] 宏为您的结构体自动添加唯一 ID 和其他方法

#[auto_json_db]
struct Post {
    title: String,
    description: String,
    categories: Vec<String>
}

此宏将添加以下内容

Post 结构体中的一个唯一 id (idx: u64)。

一个 new 方法用于创建新实例。

一个 get_all 方法,用于从 JSON 文件中检索所有保存的帖子,以 idx 作为键,Post 对象作为值作为 HashMap。

一个 save 方法将单个 Post 保存到 JSON 文件。

一个 save_vec 方法将 Post 对象的向量保存到 JSON 文件。

一个 get_by_id 方法用于通过 idx 检索 Post。

一个 remove_by_id 方法用于通过 idx 删除 Post。

一个 clear 方法用于删除所有 Post 对象。

贡献

欢迎贡献!请在 GitHub 上打开一个问题或提交一个拉取请求。

许可证

本项目采用 APACHE 许可证 许可。

依赖

~0.5–1MB
~23K SLoC