feat: add main4

This commit is contained in:
2020-11-20 23:50:29 +08:00
parent 6488b111d7
commit 30dc4a1416
5 changed files with 106 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
mod main_1;
mod main_2;
mod main_3;
mod main_4;
fn main() {
println!("{}", "-".repeat(88));
@@ -9,4 +10,6 @@ fn main() {
main_2::run_main();
println!("{}", "-".repeat(88));
main_3::run_main();
println!("{}", "-".repeat(88));
main_4::run_main();
}

View File

@@ -20,7 +20,7 @@ fn parse<P: AsRef<Path>>(path: P) -> Result<()> {
unsafe { mem::transmute(h) }
};
println!("{:#?}", header);
println!("{:?}", header);
Ok(())
}
fn write<P: AsRef<Path>>(path: P, h: Header) -> Result<()> {

View File

@@ -0,0 +1,25 @@
use std::mem;
use std::io::Read;
use serde::Deserialize;
#[derive(Deserialize, Debug)]
#[repr(C)]
struct Header {
name: [u8; 4],
size: u32,
reserved: u64,
}
const HEADER: &[u8]= &[1, 2, 3, 4, 239, 205, 171, 0, 239, 205, 171, 137, 103, 69, 35, 1];
pub fn run_main() {
let header: Header = {
let mut encoded = [0u8; mem::size_of::<Header>()];
let mut reader = HEADER;
reader.read_exact(&mut encoded).unwrap();
bincode::deserialize(&encoded[..]).unwrap()
};
println!("{:?}", header);
}