Pure MoonBit ICAO 9303 MRZ parser, 7-3-1 check-digit verifier, and TD1/TD2/TD3 builder
moon add ZJH-666-ZJH/moonmrzmoon run cmd/demo --target wasm-gclet filed = @mrz.parse(passport).unwrap()
// filed.full_name() == "ERIKSSON ANNA MARIA"let (doc, diags) = @mrz.parse_with_diagnostics(tampered)
// diags[0].format() == "2:10: error MRZ005: document number check digit is wrong"let rebuilt = @mrz.build_text(spec).unwrap()
let again = @mrz.parse(rebuilt).unwrap()
// format(again) == original TD3 textDCS: ERIKSSON ANNA MARIA / L898902C3
KIOSK: 2:10: error MRZ005: document number check digit is wrong
KIOSK-FIELDS: L898902C3
FIXTURE: rebuilt TD3 round-trip ok
MoonMRZ acceptance: 3 scenarios passedlet doc = @mrz.parse(text).unwrap()
let (maybe, diags) = @mrz.parse_with_diagnostics(text)
let ok = @mrz.is_valid(text)
let layout = @mrz.layout_of(text)
let (built, warnings) = @mrz.build(spec)moon check --target wasm-gc --deny-warn
moon test --target wasm-gc --deny-warn
moon run cmd/demo --target wasm-gcfn check_digit(field : String) -> Int?Install
Download zipPure MoonBit ICAO 9303 MRZ parser, 7-3-1 check-digit verifier, and TD1/TD2/TD3 builder