scan_barcodes/
scan-barcodes.rs1use barcode_scanner::BarcodeScanner;
2
3fn do_main() -> Result<(), ()> {
4 let args: Vec<_> = std::env::args().collect();
5 if args.len() != 2 {
6 let prog_name = args[0].rsplit_once('/').map(|(_parent, name)| name).unwrap_or(&args[0]);
7 eprintln!("Usage: {prog_name} DEVICE_PATH");
8 return Err(())
9 }
10
11 let device_path = &args[1];
12 let mut scanner = BarcodeScanner::open(device_path)
13 .map_err(|e| eprintln!("{e}"))?;
14
15 println!("Ready to scan barcodes");
16 loop {
17 let barcode = scanner.read().map_err(|e| println!("Failed to read barcode: {e}"))?;
18 println!("{barcode}");
19 }
20}
21fn main() {
22 if let Err(_barcode_scanner_error) = do_main() {
23 std::process::exit(1);
24 }
25}