qrcode-rs 2.0.0

QR code encoder in Rust,Generate QR Code matrices and images in RAW, PNG and SVG formats.
Documentation
use qrcode_rs::{EcLevel, NumericMode, QrCode, QrError, Version};

fn main() {
    let code = QrCode::builder(b"01234567")
        .version(Version::Normal(1))
        .ec_level(EcLevel::M)
        .encoding_mode_typed::<NumericMode>()
        .unwrap_or_else(|err| {
            eprintln!("{err}");
            std::process::exit(1);
        })
        .build()
        .unwrap_or_else(|err| {
            eprintln!("{err}");
            std::process::exit(1);
        });

    assert_eq!(code.version(), Version::Normal(1));

    let invalid = QrCode::builder(b"12a").encoding_mode_typed::<NumericMode>();
    assert!(matches!(invalid, Err(QrError::InvalidCharacter { position: 2, byte: b'a' })));

    println!("typed numeric mode width: {}", code.width());
}