use std::io; use petgraph::Graph; use serde::{Deserialize, Serialize}; use super::{structure::{RSlabel, RSsystem}, translator::Translator}; #[derive(Serialize, Deserialize)] struct GraphAndTranslator { graph: Graph, translator: Translator } pub fn sr(writer: W, graph: &Graph, translator: &Translator) -> Result<(), serde_cbor_2::Error> where W: io::Write, { serde_cbor_2::to_writer(writer, &GraphAndTranslator { graph: graph.clone(), translator: translator.clone() }) } pub fn dsr( reader: R ) -> Result<(Graph, Translator), serde_cbor_2::Error> where R: io::Read, { let gat: GraphAndTranslator = serde_cbor_2::from_reader(reader)?; Ok((gat.graph, gat.translator)) }