A bit of fun procrastinating on my Rust CPLEX wrapper this morning. Rewrote my constraint macro to be recursive so that you can mix atoms and summations in the same expression. Before, if you wanted both you'd have to do:
let con = con!("foo": 0.0 >= sum &xs);
con.add_wvar(WeightedVariable::from_idx(y, 1.0));
Now, you can do:
con!("foo": 0.0 >= sum (&xs) + 1.0 y);
Unfortunately, still haven't figured out how to get rid of the extra parens...