1use crate::graph::{CodePropertyGraph, GraphData};
2use anyhow::Result;
3use std::{fs, path::Path};
4
5pub fn load_graph(path: &Path) -> Result<CodePropertyGraph> {
7 let compressed = fs::read(path)?;
8 let bytes = zstd::decode_all(&compressed[..])?;
9 let data: GraphData = bincode::deserialize(&bytes)?;
10 Ok(CodePropertyGraph::from(data))
11}
12
13pub fn save_graph(graph: &CodePropertyGraph, path: &Path) -> Result<()> {
15 let data = GraphData::from(graph);
16 let bytes = bincode::serialize(&data)?;
17 let compressed = zstd::encode_all(&bytes[..], 0)?;
18 fs::write(path, compressed)?;
19 Ok(())
20}