#![allow(clippy::unwrap_used, clippy::expect_used)]
use segb::common::EntryState;
fn main() {
let path = std::env::args()
.nth(1)
.expect("usage: dump_menuitems <segb-file>");
let data = std::fs::read(&path).expect("read file");
let mut cur = std::io::Cursor::new(data);
let records = segb::read_segb(&mut cur).expect("parse SEGB");
let mut decoded = 0usize;
for (i, r) in records.iter().enumerate() {
if r.state() != EntryState::Written {
continue;
}
match segb::menuitem::decode_app_menu_item(r.payload(), r.timestamp_unix()) {
Ok(m) => {
println!(
" [{i}] application={:?} menu_item={:?} ts_unix={:?}",
m.application, m.menu_item, m.timestamp_unix
);
decoded += 1;
}
Err(e) => println!(" [{i}] decode_error={e}"),
}
}
println!("menu_items: {decoded}");
}