Add serialization of HashEntries

master
Trivernis 5 years ago
parent 4a9dcd35de
commit 69da09ecc8

@ -35,7 +35,7 @@ pub struct MetaChunk {
#[derive(Debug, Clone)]
pub struct HashLookupTable {
entries: HashMap<u32, HashEntry>,
pub entries: HashMap<u32, HashEntry>,
}
#[derive(Debug, Clone)]
@ -126,6 +126,7 @@ impl BinaryDictionaryFile {
}
impl GenericChunk {
/// Returns the data entries of the chunk
pub fn data_entries(
&mut self,
lookup_table: &HashLookupTable,
@ -275,3 +276,22 @@ impl TryFrom<GenericChunk> for HashLookupTable {
})
}
}
impl HashEntry {
pub fn serialize(&mut self) -> Vec<u8> {
let mut serialized: Vec<u8> = Vec::new();
let mut id_raw = [0u8; 4];
BigEndian::write_u32(&mut id_raw, self.id);
serialized.append(&mut id_raw.to_vec());
let mut output_length_raw = [0u8; 4];
BigEndian::write_u32(&mut output_length_raw, self.output_length);
serialized.append(&mut output_length_raw.to_vec());
let mut name_raw = self.name.clone().into_bytes();
let mut name_length_raw = [0u8; 4];
BigEndian::write_u32(&mut name_length_raw, name_raw.len() as u32);
serialized.append(&mut name_length_raw.to_vec());
serialized.append(&mut name_raw);
serialized
}
}

Loading…
Cancel
Save