#json-path #relative-path #data #file-path #load #serializable #loader

serde-loader

用于从相对路径加载/保存可序列化数据的 Serde 封装

6 个版本

0.2.0 2023年7月26日
0.1.4 2022年4月5日
0.1.3 2022年2月23日

#816编码

MIT 许可证

23KB
753

serde-loader

[ crates.io | docs.rs ]

它提供了一个 serde 封装,用于从相对路径加载/保存可序列化数据。

示例

它允许在序列化过程中写入文件路径而不是数据。假设我们有以下要加载的 JSON 文件。

main.json

{
    "sub": "sub/sub.json"
}

sub/sub.json

{
    "sub": "sub/sub.json"
}

sub/sub/sub_of_sub.json

{
    "sub": "sub/sub_of_sub.json"
}

此软件包提供了 JsonPath 封装,用于递归地加载 JSON 文件。

use serde_loader::JsonPath;
use serde::{Serialize, Deserialize};

#[derive(Serialize, Deserialize)]
struct Main {
    pub sub: JsonPath<Sub>
}


#[derive(Serialize, Deserialize)]
struct Sub {
    pub sub: JsonPath<SubOfSub>
}


#[derive(Serialize, Deserialize)]
struct SubOfSub {
    pub name: String,
    pub value: String,
}

let config: JsonPath<Main> = JsonPath::open("tests/config-example/main.json")?;
config.save()?;

许可证

MIT 许可证。请参阅 许可证文件

依赖关系

~1.4–2.7MB
~59K SLoC