extern crate barcode_command;
use std::env;
use crate::barcode_command::barcode::code39::Code39;
use crate::barcode_command::barcode::industrial2of5::Industrial2of5;
use crate::barcode_command::barcode::postnet::POSTNET;
use crate::barcode_command::barcode::Barcode;
fn main() {
let args: Vec<String> = env::args().collect();
let program = args[0].clone();
if args.len() < 4 {
eprintln!("{} <barcode> <input> <checkdigit>", program);
return;
}
let barcode_type = args[1].clone();
match barcode_type.as_ref() {
"code39" =>
{
let input = args[2].clone();
let check_digit:i32 = args[3].parse().unwrap();
let mut code39 = Code39::new(&input,check_digit);
println!("{}", code39.encode());
}
"industrial2of5" =>
{
let input = args[2].clone();
let check_digit:i32 = args[3].parse().unwrap();
let mut industrial2of5 = Industrial2of5::new(&input,check_digit);
println!("{}", industrial2of5.encode());
}
"postnet" =>
{
let input = args[2].clone();
let mut postnet = POSTNET::new(&input);
println!("{}", postnet.encode());
}
_ => eprintln!("{} is an unknown barcode type.", barcode_type)
}
}