Как я могу сериализовать и десериализовать граф, используя Serde с Petgraph? - PullRequest
0 голосов
/ 29 января 2020

Документация Petgraph намекает на поддержку Серде. Под «текущими функциями»:

serde-1 - по умолчанию выключено. Включает сериализацию для Graph, StableGraph с использованием serde 1.0. Может потребоваться более свежая версия Rust, чем одна петграфия.

Я вижу файл serde_utils.rs в исходном коде, но я не нашел примеров, показывающих, как заставить работать поддержку Serde.

Я знаю, как включить опциональную функцию ящика . Мой вопрос направлен на то, чтобы заставить сериализацию и десериализацию работать.

1 Ответ

1 голос
/ 29 января 2020

Вот пример:

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

Все, что вам нужно, находится в документации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...