hdf5_reader/messages/
symbol_table_msg.rs1use crate::error::Result;
7use crate::io::Cursor;
8
9#[derive(Debug, Clone)]
11pub struct SymbolTableMessage {
12 pub btree_address: u64,
14 pub heap_address: u64,
16}
17
18pub fn parse(
20 cursor: &mut Cursor<'_>,
21 offset_size: u8,
22 _length_size: u8,
23 _msg_size: usize,
24) -> Result<SymbolTableMessage> {
25 let btree_address = cursor.read_offset(offset_size)?;
26 let heap_address = cursor.read_offset(offset_size)?;
27
28 Ok(SymbolTableMessage {
29 btree_address,
30 heap_address,
31 })
32}
33
34#[cfg(test)]
35mod tests {
36 use super::*;
37
38 #[test]
39 fn test_parse_symbol_table_msg() {
40 let mut data = Vec::new();
41 data.extend_from_slice(&0x1000u64.to_le_bytes());
43 data.extend_from_slice(&0x2000u64.to_le_bytes());
45
46 let mut cursor = Cursor::new(&data);
47 let msg = parse(&mut cursor, 8, 8, data.len()).unwrap();
48 assert_eq!(msg.btree_address, 0x1000);
49 assert_eq!(msg.heap_address, 0x2000);
50 }
51}