2 个版本
0.1.1 | 2021 年 10 月 29 日 |
---|---|
0.1.0 | 2021 年 10 月 29 日 |
##1451 in 编码
37KB
939 行
Jatch
遵循 RFC6902 的 Rust JSON 补丁库
轻松找到两个 JSON 之间的差异
let before = json!({"a": 123});
let after = json!({"a": 123, "b": "hello"});
let patches = diff(before, after);
assert_eq!(patches, vec![Patch::Add {
value: json!("hello"),
path: Path::new("/b"),
}]);
lib.rs
:
一个提供快速、正确和安全的 JSON 补丁(RFC 6902)实现的 crate
它可以应用到 JSON 文档上
let doc = json!({"hello": "world"});
let patch = Patch::Add {
path: Path::new("/foo"),
value: json!("bar"),
};
assert_eq!(
apply(doc, vec![patch]).unwrap(),
json!({
"hello": "world",
"foo": "bar",
})
);
它还可以计算两个 JSON 之间的差异
let patches = diff(
json!({"hello": "world"}),
json!({"hello": "world", "foo": "bar"}),
);
assert_eq!(
patches[0],
Patch::Add {
path: Path::new("/foo"),
value: json!("bar"),
}
);
依赖
~0.7–1.6MB
~36K SLoC