use microlp::MpsFile; use std::io; const USAGE: &str = "\ Read a problem in the MPS format and solve it. USAGE: solve_mps --help solve_mps INPUT_FILE INPUT_FILE is a file in the M format. You can download some sample problems from http://www.netlib.org/lp/data/. Use - for stdin. Output is a single line containing the minimal objective value. Set RUST_LOG environment variable (e.g. to info) to enable logging to stderr. "; fn main() { env_logger::init(); let args = std::env::args().collect::>(); if args.len() != 2 { print!("{}", USAGE); std::process::exit(1); } else if args[1] == "--help" { print!("{}", USAGE); return; } let filename = &args[1]; let direction = microlp::OptimizationDirection::Minimize; let file = if filename == "-" { MpsFile::parse(std::io::stdin().lock(), direction).unwrap() } else { let file = std::fs::File::open(filename).unwrap(); let input = io::BufReader::new(file); MpsFile::parse(input, direction).unwrap() }; let solution = file.problem.solve().unwrap(); println!("objective value: {}", solution.objective()); }