use std::os::raw::{
c_char,
c_int,
c_void
};
#[repr(C)] pub struct SysSolver { _private: [u8; 0] }
extern "C" {
pub fn ipasir_signature() -> *const c_char;
pub fn ipasir_init() -> *mut SysSolver;
pub fn ipasir_release(solver: *mut SysSolver);
pub fn ipasir_add(solver: *mut SysSolver, lit_or_zero: c_int);
pub fn ipasir_assume(solver: *mut SysSolver, lit: c_int);
pub fn ipasir_solve(solver: *mut SysSolver) -> c_int;
pub fn ipasir_val(solver: *mut SysSolver, lit: c_int) -> c_int;
pub fn ipasir_failed(solver: *mut SysSolver, lit: c_int) -> c_int;
pub fn ipasir_set_terminate(
solver: *mut SysSolver,
state: *const c_void,
terminate: extern fn(state: *const c_void) -> c_int
);
pub fn ipasir_set_learn(
solver: *mut SysSolver,
state: *const c_void,
max_length: c_int,
learn: extern fn(state: *const c_void, clause: *const c_int)
);
}