如何使用Serde与Petgraph序列化和反序列化图形?

4

Petgraph文档提到了Serde支持,在“current features”下面:

serde-1 - 默认关闭。启用Graph、StableGraph使用serde 1.0进行序列化。可能需要比petgraph本身更新版本的Rust。

我可以看到源代码中有serde_utils.rs文件,但我没有找到任何示例来显示如何使Serde支持工作。

我知道如何启用可选的crate功能。我的问题是如何使序列化和反序列化工作。

1个回答

5

以下是一个例子:

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));
}

所有您需要的内容都在文档中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接