process_file/
process_file.rs1use libaprs_engine::{Engine, EngineResult, LineTransport, Policy};
2
3fn main() -> std::io::Result<()> {
4 let Some(path) = std::env::args().nth(1) else {
5 eprintln!("usage: process_file <packets.aprs>");
6 std::process::exit(2);
7 };
8
9 let input = std::fs::read(path)?;
10 let mut engine = Engine::new(Policy::strict());
11
12 for packet_bytes in LineTransport::new(&input).packets() {
13 match engine.process(packet_bytes) {
14 EngineResult::Accepted { packet } => println!("{}", packet.to_json()),
15 EngineResult::Rejected { reason, .. } => eprintln!("rejected: {}", reason.code()),
16 EngineResult::ParseError(error) => eprintln!("malformed: {}", error.code()),
17 }
18 }
19
20 Ok(())
21}