Skip to main content

qr_matrix/
qr_matrix.rs

1// Helper: encode a URL to a QR matrix and print as a Typst 2-D array.
2// Usage:  cargo run --example qr_matrix -- "https://example.com/pay/abc"
3
4use invoice_cli::render::encode_qr;
5
6fn main() {
7    let args: Vec<String> = std::env::args().collect();
8    let data = args
9        .get(1)
10        .cloned()
11        .unwrap_or_else(|| "https://buy.stripe.com/test_ACME-STUDIO-S$28014".to_string());
12
13    let qr = encode_qr(&data).expect("encoding failed");
14    println!("#let qr-data = (");
15    println!("  size: {},", qr.size);
16    println!("  label: \"{}\",", qr.label);
17    println!("  modules: (");
18    for row in &qr.modules {
19        let cells: Vec<&str> = row
20            .iter()
21            .map(|b| if *b { "true" } else { "false" })
22            .collect();
23        println!("    ({}),", cells.join(", "));
24    }
25    println!("  ),");
26    println!(")");
27}