snapshot_parser/
reader.rs1use 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}