libaprs-engine 0.1.2

Protocol-first APRS engine core primitives
Documentation
use std::time::{Duration, Instant};

use libaprs_engine::parse_packet;

fn main() {
    let packet = b"N0CALL>APRS,WIDE1-1:>benchmark packet";
    let iterations = 100_000;
    let started = Instant::now();

    for _ in 0..iterations {
        parse_packet(packet).expect("benchmark packet should parse");
    }

    let elapsed = started.elapsed();
    print_summary(iterations, elapsed);
}

fn print_summary(iterations: u32, elapsed: Duration) {
    let nanos = elapsed.as_nanos() / u128::from(iterations);
    println!("parsed {iterations} packets in {elapsed:?} ({nanos} ns/packet)");
}