Rust - запись файла в исходном формате, как понять формат?
Есть файл, данные из которого читаются вот так:
let mut file = std::fs::File::open("test.img").expect("Unable to open file");
const READ_MAX_LEN: usize = 7;
let mut bin = [0; READ_MAX_LEN];
let bytes_read = handle.take(READ_MAX_LEN as u64).read(&mut bin)?;
let _str_src = bin[..bytes_read].iter().map(|byte|format!("{byte:02x?}")).collect::<String>();
Как в таком же виде добавить в него данные? Если я не ошибаюсь файл читается по 7 байт, затем каждый байт преобразуется в строку и склеивается вместе. Как реализовать обратную операцию?
Я начал делать (через крейт hex = "0.4.3"), но не уверен, что правильно сделал.
fn main() -> io::Result<()> {
let mut file = fs::OpenOptions::new().create(true).append(true).open("test.img")?;
let dates: [&str; 2] = ["03011703122220", "03011303122220"];
for dat in &dates {
let decoded = hex::decode(dat).expect("Decoding failed");
let _remaining = file.write(&decoded);
println!("{:?}", decoded);
let hex_string = hex::encode(&decoded);
println!("{}", hex_string);
}
Ok(())
}