1
Fork 0
mirror of https://github.com/redstrate/Physis.git synced 2025-06-08 07:37:46 +00:00

Implement BinWrite for BlockHeader

This commit is contained in:
Joshua Goins 2024-06-29 12:37:14 -04:00
parent 30ed0180ce
commit ee5a484730

View file

@ -162,21 +162,23 @@ pub enum CompressionMode {
}, },
} }
#[binrw::binread] #[binrw]
#[derive(Debug)] #[derive(Debug)]
#[br(little)] #[brw(little)]
pub struct BlockHeader { pub struct BlockHeader {
#[br(pad_after = 4)] #[brw(pad_after = 4)]
pub size: u32, pub size: u32,
#[br(temp)] #[br(temp)]
#[bw(calc = match compression { CompressionMode::Compressed{ compressed_length, .. } => { *compressed_length } CompressionMode::Uncompressed{ .. } => { 32000 }})]
x: i32, x: i32,
#[br(temp)] #[br(temp)]
#[bw(calc = match compression { CompressionMode::Compressed{ decompressed_length, .. } => { *decompressed_length } CompressionMode::Uncompressed{ file_size } => { *file_size }})]
y: i32, y: i32,
#[br(args { x, y })] #[br(args { x, y })]
#[br(restore_position)] #[brw(restore_position)]
pub compression: CompressionMode, pub compression: CompressionMode,
} }