scan_barcodes/
scan-barcodes.rs

1use 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}