feat: add main4
This commit is contained in:
@@ -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();
|
||||
}
|
||||
@@ -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<()> {
|
||||
|
||||
25
__ffi/c_layout/src/main_4.rs
Normal file
25
__ffi/c_layout/src/main_4.rs
Normal 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);
|
||||
}
|
||||
Reference in New Issue
Block a user