russcip 0.1.4

Rust interface for SCIP.
use crate::{ffi, model::Model};

pub struct Constraint<'a> {
    pub(crate) model: &'a Model,
    pub(crate) raw: *mut ffi::SCIP_CONS,
}

impl<'a> Constraint<'a> {
    pub fn get_name(&self) -> String {
        unsafe {
            let name = ffi::SCIPconsGetName(self.raw);
            String::from(std::ffi::CStr::from_ptr(name).to_str().unwrap())
        }
    }
}

impl<'a> Drop for Constraint<'a> {
    fn drop(&mut self) {
        unsafe { ffi::SCIPreleaseCons(self.model.scip, &mut self.raw) };
    }
}