in src/model/filerec.rs [158:185]
fn encode_strings<'a>(strings: &[String]) -> Result<Vec<u8>, StringEncodeError<'a>> {
let mut result: Vec<u8> = Vec::with_capacity(1024);
for string in strings.iter() {
let u16data: Vec<u16> = string.encode_utf16().collect();
let size = u16data.len() * 2;
result
.write_u8(0xfe)
.map_err(|_| StringEncodeError("Failed to write file rec string header"))?;
result
.write_i32::<LittleEndian>(-(size as i32))
.map_err(|_| StringEncodeError("Failed to write file rec string size"))?;
let start = result.len();
let end = start + size;
result.resize(end, 0);
LittleEndian::write_u16_into(&u16data, &mut result[start..end]);
}
result
.write_u8(0xff)
.map_err(|_| StringEncodeError("Failed to write file rec string end"))?;
Ok(result)
}