2 个版本

0.1.1 2021 年 10 月 29 日
0.1.0 2021 年 10 月 29 日

##1451 in 编码

MIT 许可证

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