grb 1.3.0

A Rust API for Gurobi optimizer
Documentation
use grb::*;

mod workforce;

fn main() {
    let mut env = Env::new("workforce1.log").unwrap();
    env.set(param::LogToConsole, 0).unwrap();

    let mut model = workforce::make_model(&env).unwrap();
    model.optimize().unwrap();

    let status = model.status().unwrap();
    if status == Status::Infeasible {
        model.compute_iis().unwrap();

        println!("The following constraint(s) cannot be satisfied:");
        let constr = model.get_constrs().unwrap();
        let iis_vals = model
            .get_obj_attr_batch(attr::IISConstr, constr.iter().copied())
            .unwrap();
        let iis_constr: Vec<_> = constr
            .iter()
            .zip(iis_vals.into_iter())
            .filter_map(|(&c, i)| if i == 1 { Some(c) } else { None })
            .collect();
        let iis_names = model
            .get_obj_attr_batch(attr::ConstrName, iis_constr)
            .unwrap();

        for name in iis_names {
            println!(" - {}", name);
        }
    }
}