#![deny(missing_docs)]
#![allow(clippy::macro_metavars_in_unsafe)]
pub use scip_sys as ffi;
pub mod branchrule;
pub use branchrule::*;
pub mod constraint;
pub use constraint::*;
pub mod model;
pub use model::*;
pub mod pricer;
pub use pricer::*;
pub mod retcode;
pub use retcode::*;
pub mod solution;
pub use solution::*;
pub mod status;
pub use status::*;
pub mod variable;
pub use variable::*;
pub mod node;
pub use node::*;
pub mod eventhdlr;
pub use eventhdlr::*;
pub mod heuristic;
pub use heuristic::*;
pub mod separator;
pub use separator::*;
pub mod prelude;
mod scip;
#[macro_export]
macro_rules! scip_call {
($res:expr) => {
let res = unsafe { $res };
let retcode = $crate::retcode::Retcode::from(res);
if retcode != $crate::retcode::Retcode::Okay {
return Err(retcode);
}
};
}
#[macro_export]
macro_rules! scip_call_panic {
($res:expr) => {
let res = unsafe { $res };
let retcode = $crate::retcode::Retcode::from(res);
if retcode != $crate::retcode::Retcode::Okay {
panic!("SCIP call failed with retcode {:?}", retcode);
}
};
}
#[macro_export]
macro_rules! scip_call_expect {
($res:expr, $msg:expr) => {
let res = unsafe { $res };
let retcode = $crate::retcode::Retcode::from(res);
if retcode != $crate::retcode::Retcode::Okay {
panic!("{} - SCIP call failed with retcode {:?}", $msg, retcode);
}
};
}