snapshot_parser/
reader.rs

1use crate::snapshot::Snapshot;
2use serde_json::from_slice;
3
4pub struct Reader {}
5
6impl Reader {
7    pub fn from_bytes(b: &[u8]) -> Snapshot {
8        match from_slice(b) {
9            Ok(snapshot) => snapshot,
10            Err(e) => panic!("parse snapshot error: {}", e),
11        }
12    }
13}
14
15#[cfg(test)]
16mod tests {
17    #[test]
18    fn test_parse_from_buffer() {
19        use super::*;
20        let raw = include_bytes!("../test/test.heapsnapshot");
21        let snapshot = Reader::from_bytes(raw);
22        let (nodes, edges) = snapshot.get_graph();
23
24        assert_eq!(nodes.len(), snapshot.snapshot.node_count as usize);
25        assert_eq!(edges.len(), snapshot.snapshot.edge_count as usize);
26    }
27}