use std::mem::transmute;
pub fn fmpz_to_int(p: *const flint_sys::fmpz::fmpz) -> rug::Integer {
unsafe {
let mut res = rug::Integer::new();
let mpz_t_ptr: *mut gmp_mpfr_sys::gmp::mpz_t = res.as_raw_mut();
let stub_ptr: *mut flint_sys::deps::__mpz_struct = transmute(mpz_t_ptr);
flint_sys::fmpz::fmpz_get_mpz(stub_ptr, p);
res
}
}
pub fn int_to_fmpz(i: &rug::Integer) -> flint_sys::fmpz::fmpz {
unsafe {
let mut out = flint_sys::fmpz::fmpz::default();
flint_sys::fmpz::fmpz_init(&mut out);
let mpz_t_ptr: *const gmp_mpfr_sys::gmp::mpz_t = i.as_raw();
let stub_ptr: *const flint_sys::deps::__mpz_struct = transmute(mpz_t_ptr);
flint_sys::fmpz::fmpz_set_mpz(&mut out, stub_ptr);
out
}
}