use ehatrom::*;
fn main() {
let vendor_atom = VendorInfoAtom::new(
0x4D4F, 0x1234, 1, "TestVendor",
"TestProduct",
[
0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC,
0xDE, 0xF0,
], );
let gpio_atom = GpioMapAtom {
flags: 0x0000,
pins: [0u8; 28], };
#[cfg(feature = "alloc")]
let mut eeprom = Eeprom {
header: EepromHeader::new(),
vendor_info: vendor_atom,
gpio_map_bank0: gpio_atom,
dt_blob: None,
gpio_map_bank1: None,
custom_atoms: Vec::new(),
};
#[cfg(not(feature = "alloc"))]
let mut eeprom = Eeprom {
header: EepromHeader::new(),
vendor_info: vendor_atom,
gpio_map_bank0: gpio_atom,
dt_blob: None,
gpio_map_bank1: None,
custom_atoms: &[],
};
eeprom.update_header();
#[cfg(feature = "alloc")]
let serialized = eeprom.serialize_with_crc();
#[cfg(not(feature = "alloc"))]
let serialized = {
let mut buffer = [0u8; 1024]; let size = eeprom
.serialize_with_crc_to_slice(&mut buffer)
.expect("Failed to serialize EEPROM");
&buffer[..size]
};
if std::fs::metadata("tests/data").is_err() {
std::fs::create_dir_all("tests/data").expect("Failed to create tests/data directory");
}
std::fs::write("tests/data/test.bin", &serialized).expect("Failed to write test file");
println!("Created tests/data/test.bin ({} bytes)", serialized.len());
if Eeprom::verify_crc(&serialized) {
println!("✅ CRC verification passed");
} else {
println!("❌ CRC verification failed");
}
}