qrcode-rs 2.0.0

QR code encoder in Rust,Generate QR Code matrices and images in RAW, PNG and SVG formats.
Documentation
//! Parse a GS1 application-identifier payload into its elements.
//!
//! Run: `cargo run --example parse_gs1`

use qrcode_rs::parse::gs1::Gs1Result;

fn main() {
    // GTIN (01) + best-before date (15), then a variable-length lot (10)
    // separated from a variable-length serial (21) by the GS byte 0x1D.
    let mut data = b"010491234512345915970331".to_vec();
    data.extend_from_slice(b"10LOT-7");
    data.push(0x1D); // GS separator between variable-length AIs
    data.extend_from_slice(b"21SN-0001");

    let result = Gs1Result::parse(&data).expect("valid GS1 payload");
    println!("Parsed {} element(s):", result.elements().len());
    for el in result.elements() {
        let value = std::str::from_utf8(el.value()).unwrap_or("<non-utf8>");
        println!("  AI {:>4} | {:<42} | {}", el.ai(), el.description(), value);
    }
}