如何使用带有 Petgraph 的 Serde 序列化和反序列化图形?

How do I serialize and deserialize a graph using Serde with Petgraph?

The Petgraph documentation 暗示支持 Serde。在"current features"下:

serde-1 - Defaults off. Enables serialization for Graph, StableGraph using serde 1.0. May require a more recent version of Rust than petgraph alone.

我可以在源代码中看到文件 serde_utils.rs,但我没有找到说明如何使 Serde 支持正常工作的示例。

我知道如何 。我的问题旨在让序列化和反序列化工作。

这是一个例子:

use petgraph::graph::UnGraph;

fn main() {
    // Create an undirected graph with `i32` nodes and edges with `()` associated data.
    let g = UnGraph::<i32, ()>::from_edges(&[(1, 2), (2, 3), (3, 4), (1, 4)]);

    // Serialize it to a JSON string.
    let j = serde_json::to_string(&g).unwrap();

    let i: UnGraph<i32, ()> = serde_json::from_str(&j).unwrap();

    assert!(petgraph::algo::is_isomorphic(&i, &g));
}

您所需要的就在 documentation