feat: parse and display XEX2 main header (M1)

Implement XEX2 main header parsing with module flag decoding.
Add error handling, big-endian read utilities, CLI entry point,
and comprehensive unit + integration tests against a sample file.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
MechaCat02
2026-03-28 18:52:15 +01:00
parent abbd264e4c
commit b5f2abe09a
9 changed files with 572 additions and 1 deletions

16
src/display.rs Normal file
View File

@@ -0,0 +1,16 @@
/// Pretty-print formatting for parsed XEX2 structures.
use crate::header::Xex2Header;
/// Prints the XEX2 main header in a human-readable format.
pub fn display_header(header: &Xex2Header) {
println!("=== XEX2 Header ===");
println!("Magic: XEX2 (0x{:08X})", header.magic);
println!("Module Flags: {}", header.module_flags);
println!(
"Header Size: 0x{:08X} ({} bytes)",
header.header_size, header.header_size
);
println!("Reserved: 0x{:08X}", header.reserved);
println!("Security Offset: 0x{:08X}", header.security_offset);
println!("Header Count: {}", header.header_count);
}