What's changed
- This release brings a bunch of API changes related to plugins:
- Now all plugin traits get passed
Model<Solving>
object, enabling easy access for methods available in the solving stage, and removing the need for saving it in the struct implementing the plugin trait usingmodel.clone_for_plugins()
. That's why this release also removes the method. - Additionally, callbacks now also include wrappers for the SCIP plugin objects, for example in the Separator trait's
execute_lp
method now aSCIPSeparator
also gets passed, with which one would query its data like the Separator's name or ask it to create a row with this separator as its origin. - The
EventHdlr
plugin callback now also gets passed anEvent
object representing which event was triggered in that specific call. This struct will in the future include methods that give access to the specific event data for different events.
- Now all plugin traits get passed
- Added wrappers for SCIP_COL and SCIP_ROW with access to most of their methods.
- Refactoring:
- Simplification of the trait implementations of the different Model stages.
- Remove the HasSCIPPtr trait and refactor common functionality in different stages to not depend on macros.
Merged PRs
- Add wrapper methods and structs for columns and rows by @mmghannam in #179
- Allow access to model in solving stage in plugins by @mmghannam in #180
- Add access to internal scip separator in callbacks by @mmghannam in #181
- Add method to add cuts by @mmghannam in #182
- Remove HasSCIPPtr trait by @mmghannam in #183
- Remove unneeded macros by @mmghannam in #184
Full Changelog: v0.4.2...v0.5.0