#![crate_type = "cdylib"]
use std::panic::catch_unwind;
fn might_panic(i: u32) -> u32 {
if i % 2 == 1 {
panic!("oops!");
}
i / 2
}
#[no_mangle]
pub extern "C" fn oopsie(i: u32) -> i64 {
let result = catch_unwind(|| might_panic(i));
match result {
Ok(i) => i as i64,
Err(_) => -1,
}
}